@polymarket/client 0.1.0-beta.17 → 0.1.0-beta.18

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/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {N,X,V,T,ra,pa,be as be$1,$d,Zd,Xd,Vd,Td,lc,jc,hc,jb,na,xc,zc,Lc,Pb,Nb,Lb,Jb,Hb,Fb,Db,Bb,zb,nb,lb,fc,Zb,Xb,Vb,Le,uf,jf,hf,bf,sf,qf,of,mf,nc,ff,df,vc,tc,rc,pc,dc,bc,$b,Qd,Nd,Md,Pd,la,ja,ha,fa,da,ba,Te,kf,R as R$1,P as P$1,Jc,Hc,Fc,Dc,Qc,Pc,hd,fd,dd,bd,Je,Ee,ve,yf,Pa,La,Ta,va,Aa,K,L as L$1,Da,Ed,Cd,Ad,wd,ud,sd,Gd,yd,Bc,Tb,Rb,H,id,G,wa,I as I$1,$a,Za,od,md,nd,kd,ld,jd,bb,qd,Me,Oe,Qe,J,Rc,Sc}from'./chunk-G452QGDI.js';export{Oa as ApproveErc1155ForAllError,Ka as ApproveErc20Error,Gc as CancelAllError,Ic as CancelMarketOrdersError,Cc as CancelOrderError,Ec as CancelOrdersError,C as CombinatorialPrepareConditionCallError,sa as ComboActivityType,ce as ComboPositionOutcome,Rd as ComboPositionSort,de as ComboPositionStatus,ed as CreateLimitOrderError,ad as CreateMarketOrderError,q as CtfRedeemPositionsCallError,Kd as DepositToPerpsError,ae as DownloadAccountingSnapshotError,W as DropNotificationsError,b as Erc20ApprovalCallError,m as Erc20TransferCallError,Kc as EstimateMarketPriceError,M as FetchClosedOnlyModeError,Wb as FetchCommentsByIdError,ac as FetchEventError,ec as FetchEventLiveVolumeError,cc as FetchEventTagsError,Kb as FetchLastTradePriceError,Mb as FetchLastTradePricesError,sc as FetchMarketError,uc as FetchMarketTagsError,kb as FetchMidpointError,mb as FetchMidpointsError,U as FetchNotificationsError,Cb as FetchOrderBookError,Eb as FetchOrderBooksError,Q as FetchOrderError,aa as FetchOrderScoringError,ca as FetchOrdersScoringError,xd as FetchPerpsBookError,Fd as FetchPerpsFeesError,rd as FetchPerpsInstrumentsError,td as FetchPerpsTickerError,vd as FetchPerpsTickersError,Yd as FetchPortfolioValueError,yb as FetchPriceError,Ob as FetchPriceHistoryError,Ab as FetchPricesError,Ke as FetchPublicProfileError,rf as FetchRelatedTagResourcesError,pf as FetchRelatedTagsError,ka as FetchRewardPercentagesError,ef as FetchSeriesError,if as FetchSportsMarketTypesError,Gb as FetchSpreadError,Ib as FetchSpreadsError,nf as FetchTagError,ga as FetchTotalEarningsForUserForDayError,_d as FetchTradedMarketCountError,S as ListAccountTradesError,oa as ListActivityError,gc as ListBuilderLeaderboardError,ib as ListBuilderTradesError,ic as ListBuilderVolumeError,Ud as ListClosedPositionsError,qa as ListComboActivityError,qc as ListComboMarketsError,Wd as ListComboPositionsError,Yb as ListCommentsByUserAddressError,Ub as ListCommentsError,Qb as ListCurrentRewardsError,_b as ListEventsError,wc as ListMarketHoldersError,Ac as ListMarketPositionsError,Sb as ListMarketRewardsError,oc as ListMarketsError,yc as ListOpenInterestError,O as ListOpenOrdersError,zd as ListPerpsCandlesError,Bd as ListPerpsFundingHistoryError,Dd as ListPerpsTradesError,Sd as ListPositionsError,cf as ListSeriesError,gf as ListSportsError,lf as ListTagsError,tf as ListTeamsError,kc as ListTraderLeaderboardError,ma as ListTradesError,ia as ListUserEarningsAndMarketsConfigError,ea as ListUserEarningsForDayError,a as MAX_UINT256,t as MergePositionsCallError,ze as MergePositionsError,y as MergeV2CallError,Hd as OpenPerpsSessionError,Se as OpenRfqSessionError,o as PerpsDepositCallError,gd as PlaceLimitOrderError,cd as PlaceMarketOrderError,Nc as PostOrderError,Oc as PostOrdersError,Ie as RedeemPositionsError,A as RedeemV2CallError,Id as RevokePerpsCredentialsError,Pe as RfqCancelQuoteError,Oe as RfqCancelQuoteRejectedError,Ue as RfqConfirmationDecision,Re as RfqConfirmationError,Qe as RfqConfirmationRejectedError,Ve as RfqDirection,We as RfqErrorCode,Xe as RfqExecutionStatus,Ye as RfqKnownErrorCode,Ne as RfqQuoteError,Me as RfqQuoteRejectedError,Ze as RfqRequestedSizeUnit,_e as RfqSide,af as SearchError,$e as SearchSort,Sa as SetupTradingApprovalsError,r as SplitPositionCallError,qe as SplitPositionError,w as SplitV2CallError,xf as TransferErc20Error,pd as UpdatePerpsLeverageError,ta as WaitForTransactionError,Ld as WithdrawFromPerpsError,D as combinatorialPrepareConditionCall,v as ctfRedeemPositionsCall,l as decodeErc1155BalanceOfBatchResult,j as decodeErc1155BalanceOfResult,h as decodeErc1155IsApprovedForAllResult,e as decodeErc20AllowanceResult,E as encodeProxyCall,F as encodeSafeMultisendCall,f as erc1155ApprovalForAllCall,k as erc1155BalanceOfBatchCall,i as erc1155BalanceOfCall,g as erc1155IsApprovedForAllCall,d as erc20AllowanceCall,c as erc20ApprovalCall,n as erc20TransferCall,ua as expectTransactionHandle,u as mergePositionsCall,z as mergeV2Call,p as perpsDepositCall,B as redeemV2Call,s as splitPositionCall,x as splitV2Call}from'./chunk-G452QGDI.js';import {a,m as m$1,j,g as g$1,f,l,h as h$1,i,c,b as b$1,e}from'./chunk-TYJAXA3Y.js';export{j as CancelledSigningError,e as ConnectionLostError,k as InsufficientLiquidityError,g as RateLimitError,f as RequestRejectedError,l as SigningError,h as TimeoutError,i as TransactionFailedError,c as TransportError,b as UnexpectedResponseError,a as UserInputError,d as WebSocketKnownCloseCode,m as makeErrorGuard}from'./chunk-TYJAXA3Y.js';import {DecimalishSchema,ApiKeySchema,EvmAddressSchema,toBaseUnits,OrderSide}from'@polymarket/bindings';export{OrderSide,OrderType}from'@polymarket/bindings';export{PriceHistoryInterval,SignatureType}from'@polymarket/bindings/clob';export{ActivityType}from'@polymarket/bindings/data';import {WalletType}from'@polymarket/bindings/gamma';export{WalletType}from'@polymarket/bindings/gamma';export{PerpsDepositStatus,PerpsInstrumentCategory,PerpsInstrumentType,PerpsInternalTransferDirection,PerpsKlineInterval,PerpsOrderStatus,PerpsSide,PerpsTimeInForce,PerpsWithdrawalStatus}from'@polymarket/bindings/perps';import {z}from'zod';import {expectEvmAddress,isSameEvmAddress,expectEvmSignature,invariant,setNonBlockingTimeout}from'@polymarket/types';import {PerpsMarketDataEventSchema,RealtimeEventSchema,SportsResultEventSchema,MarketEventSchema,UserEventSchema}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import {RfqKnownInboundMessageSchema,RfqQuoterInboundMessageSchema,RfqConfirmationDecision,RfqRequestedSizeUnit,RfqDirection}from'@polymarket/bindings/rfq';var Si=z.object({POLY_BUILDER_API_KEY:z.string().min(1),POLY_BUILDER_TIMESTAMP:z.string().min(1),POLY_BUILDER_PASSPHRASE:z.string().min(1),POLY_BUILDER_SIGNATURE:z.string().min(1)});function bi(t){return new se(t)}function Pi(t){return new ne(t)}var se=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return true}get supportGasless(){return true}async authorize(e){try{return await this.#s(e)}catch(r){throw l.fromError(r,"Could not authorize the builder-authenticated request")}}async#r(){let e=this.#e.headers,r=typeof e=="function"?await e():e,s=new Headers(r);return s.set("content-type","application/json"),s}async#s(e){let r=await fetch(this.#e.url,{body:JSON.stringify({body:e.body,method:e.method,path:e.path}),credentials:this.#e.credentials,headers:await this.#r(),method:"POST",mode:"cors"});if(!r.ok)throw new Error(`Remote signer rejected request with status ${r.status}`);return Si.parse(await r.json())}},ne=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return false}get supportGasless(){return true}authorize(){return Promise.resolve({RELAYER_API_KEY:this.#e.key,RELAYER_API_KEY_ADDRESS:this.#e.address})}};function vr(t){return {domain:{chainId:t.chainId,name:"ClobAuthDomain",version:"1"},message:{address:t.address,message:"This message attests that I control the given wallet",nonce:t.nonce??0,timestamp:`${t.timestamp}`},primaryType:"ClobAuth",types:{ClobAuth:[{name:"address",type:"address"},{name:"timestamp",type:"string"},{name:"nonce",type:"uint256"},{name:"message",type:"string"}]}}}function Ri(t){return {listPositions:Td.bind(null,t),listClosedPositions:Vd.bind(null,t),listComboPositions:Xd.bind(null,t),fetchPortfolioValue:Zd.bind(null,t),fetchTradedMarketCount:$d.bind(null,t),downloadAccountingSnapshot:be$1.bind(null,t),listMarketPositions:Bc.bind(null,t),listActivity:pa.bind(null,t),listComboActivity:ra.bind(null,t)}}function h(t,e={}){return {...e,user:e.user??t.account.wallet}}function ie(t){let e=Ri(t);return t.isPublicClient()?e:{...e,listPositions:r=>Td(t,h(t,r)),listClosedPositions:r=>Vd(t,h(t,r)),listComboPositions:r=>Xd(t,h(t,r)),fetchPortfolioValue:r=>Zd(t,h(t,r)),fetchTradedMarketCount:r=>$d(t,h(t,r)),downloadAccountingSnapshot:r=>be$1(t,h(t,r)),listActivity:r=>pa(t,h(t,r)),listComboActivity:r=>ra(t,h(t,r)),listAccountTrades:T.bind(null,t),fetchNotifications:V.bind(null,t),dropNotifications:X.bind(null,t),fetchClosedOnlyMode:N.bind(null,t)}}function oe(t){return {listBuilderTrades:jb.bind(null,t),listBuilderLeaderboard:hc.bind(null,t),fetchBuilderVolume:jc.bind(null,t),listTraderLeaderboard:lc.bind(null,t)}}function ae(t){return {fetchEventLiveVolume:fc.bind(null,t),fetchMidpoint:lb.bind(null,t),fetchMidpoints:nb.bind(null,t),fetchPrice:zb.bind(null,t),fetchPrices:Bb.bind(null,t),fetchOrderBook:Db.bind(null,t),fetchOrderBooks:Fb.bind(null,t),fetchSpread:Hb.bind(null,t),fetchSpreads:Jb.bind(null,t),fetchLastTradePrice:Lb.bind(null,t),fetchLastTradePrices:Nb.bind(null,t),fetchPriceHistory:Pb.bind(null,t),estimateMarketPrice:Lc.bind(null,t),listOpenInterest:zc.bind(null,t),listMarketHolders:xc.bind(null,t),listTrades:na.bind(null,t)}}function ce(t){return {listEvents:$b.bind(null,t),fetchEvent:bc.bind(null,t),fetchEventTags:dc.bind(null,t),listMarkets:pc.bind(null,t),listComboMarkets:rc.bind(null,t),fetchMarket:tc.bind(null,t),fetchMarketTags:vc.bind(null,t),listSeries:df.bind(null,t),fetchSeries:ff.bind(null,t),listMarketClarifications:nc.bind(null,t),listTags:mf.bind(null,t),fetchTag:of.bind(null,t),fetchRelatedTags:qf.bind(null,t),fetchRelatedTagResources:sf.bind(null,t),search:bf.bind(null,t),listSports:hf.bind(null,t),fetchSportsMarketTypes:jf.bind(null,t),listTeams:uf.bind(null,t),fetchPublicProfile:Le.bind(null,t),listComments:Vb.bind(null,t),fetchCommentsById:Xb.bind(null,t),listCommentsByUserAddress:Zb.bind(null,t)}}function ue(t){let e={fetchPerpsBook:r=>yd(t,r),fetchPerpsFees:()=>Gd(t),fetchPerpsInstruments:r=>sd(t,r),fetchPerpsTicker:r=>ud(t,r),fetchPerpsTickers:r=>wd(t,r),listPerpsCandles:r=>Ad(t,r),listPerpsFundingHistory:r=>Cd(t,r),listPerpsTrades:r=>Ed(t,r)};return t.isSecureClient()?{...e,depositToPerps:r=>Pd(t,r),openPerpsSession:r=>Md(t,r),revokePerpsCredentials:r=>Nd(t,r),withdrawFromPerps:r=>Qd(t,r)}:e}function gi(t){return {listCurrentRewards:Rb.bind(null,t),listMarketRewards:Tb.bind(null,t)}}function de(t){let e=gi(t);return t.isPublicClient()?e:{...e,fetchOrderScoring:ba.bind(null,t),fetchOrdersScoring:da.bind(null,t),listUserEarningsForDay:fa.bind(null,t),fetchTotalEarningsForUserForDay:ha.bind(null,t),listUserEarningsAndMarketsConfig:ja.bind(null,t),fetchRewardPercentages:la.bind(null,t)}}function Cr(t){return {openRfqSession(){return Te(t)}}}function pe(t){return t.isSecureClient()?{subscribe(e){return kf(t,e)}}:{subscribe(e){return kf(t,e)}}}function Er(t){return {createMarketOrder:bd.bind(null,t),placeMarketOrder:dd.bind(null,t),createLimitOrder:fd.bind(null,t),placeLimitOrder:hd.bind(null,t),postOrder:Pc(t),postOrders:Qc(t),cancelOrder:Dc.bind(null,t),cancelOrders:Fc.bind(null,t),cancelAll:Hc.bind(null,t),cancelMarketOrders:Jc.bind(null,t),listOpenOrders:P$1.bind(null,t),fetchOrder:R$1.bind(null,t)}}function kr(t){return {isGaslessReady:()=>Promise.resolve(true),setupTradingApprovals:Ta.bind(null,t),approveErc20:La.bind(null,t),approveErc1155ForAll:Pa.bind(null,t),transferErc20:yf.bind(null,t),splitPosition:ve.bind(null,t),mergePositions:Ee.bind(null,t),redeemPositions:Je.bind(null,t)}}function Tr(t){return t.isSecureClient()?{...ie(t),...oe(t),...ae(t),...ce(t),...ue(t),...de(t),...Cr(t),...pe(t),...Er(t),...kr(t)}:{...ie(t),...oe(t),...ae(t),...ce(t),...ue(t),...de(t),...pe(t)}}var le={name:"production",chainId:137,rpc:"https://polygon.drpc.org",walletDerivation:{depositWalletFactory:expectEvmAddress("0x00000000000Fb5C9ADea0298D729A0CB3823Cc07"),depositWalletBeacon:expectEvmAddress("0x7A18EDfe055488A3128f01F563e5B479D92ffc3a"),depositWalletImplementation:expectEvmAddress("0x58CA52ebe0DadfdF531Cde7062e76746de4Db1eB"),proxyFactory:expectEvmAddress("0xaB45c5A4B0c941a2F231C04C3f49182e1A254052"),proxyImplementation:expectEvmAddress("0x44e999d5c2F66Ef0861317f9A4805AC2e90aEB4f"),safeFactory:expectEvmAddress("0xaacFeEa03eb1561C4e67d661e40682Bd20E3541b"),safeInitCodeHash:"0x2bce2127ff07fb632d16c8347c4ebf501f4841168bed00d9e6ef715ddb6fcecf"},contracts:{collateralToken:expectEvmAddress("0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB"),conditionalTokens:expectEvmAddress("0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"),negRiskAdapter:expectEvmAddress("0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296"),collateralAdapter:expectEvmAddress("0xAdA100Db00Ca00073811820692005400218FcE1f"),negRiskCollateralAdapter:expectEvmAddress("0xadA2005600Dec949baf300f4C6120000bDB6eAab"),standardExchange:expectEvmAddress("0xE111180000d2663C0091e4f400237545B87B996B"),negRiskExchange:expectEvmAddress("0xe2222d279d744050d28e00520010520000310F59"),exchangeV3:expectEvmAddress("0xe3333700cA9d93003F00f0F71f8515005F6c00Aa"),protocolV2Router:expectEvmAddress("0x12121212006e4CD160D18e3f00711DA5c3372600"),combinatorialModule:expectEvmAddress("0x30000034706c7d8e12009dab006be20000c031a8"),positionManager:expectEvmAddress("0x006F54F7f9A22e0000CC2AB60031000000ae9fEF"),autoRedeemOperator:expectEvmAddress("0xa1200000d0002264C9a1698e001292D00E1b00af"),safeMultisend:expectEvmAddress("0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761"),relayHub:expectEvmAddress("0xD216153c06E857cD7f72665E0aF1d7D82172F494"),perpsDepositContract:expectEvmAddress("0xDCa4af75705dbB50f62437045afF9921947917d2")},clob:{rest:"https://clob.polymarket.com",market:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/market"},user:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/user"}},relayer:{rest:"https://relayer-v2.polymarket.com"},gamma:{rest:"https://gamma-api.polymarket.com"},data:{rest:"https://data-api.polymarket.com"},rfq:{rest:"https://combos-rfq-api.polymarket.com",ws:"wss://combos-rfq-gateway-quoter.polymarket.com/ws/rfq"},perps:{rest:"https://api.perpetuals.polymarket.com",ws:"wss://ws.perpetuals.polymarket.com/v1/ws"},rtds:{ws:"wss://ws-live-data.polymarket.com"},sports:{ws:"wss://sports-api.polymarket.com/ws"},relayerMaxPolls:100,relayerPollFrequencyMs:2e3};function qi(t,e=le){return {...e,...t,walletDerivation:{...e.walletDerivation,...t.walletDerivation},contracts:{...e.contracts,...t.contracts},clob:{...I(e.clob,t.clob),market:O(e.clob.market,t.clob?.market),user:O(e.clob.user,t.clob?.user)},relayer:I(e.relayer,t.relayer),gamma:I(e.gamma,t.gamma),data:I(e.data,t.data),rfq:wr(e.rfq,t.rfq),perps:wr(e.perps,t.perps),rtds:O(e.rtds,t.rtds),sports:O(e.sports,t.sports)}}function I(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function O(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function wr(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function me(t,e){if(!(t===void 0&&e===void 0))return {...t,...e}}var ac=qi({name:"preproduction",clob:{rest:"https://clob-preprod-int-v2.polymarket.com"},data:{rest:"https://data-api-preprod-int.polymarket.com"},gamma:{rest:"https://gamma-api-preprod-int.polymarket.com"},relayer:{rest:"https://relayer-v2-preprod-int.polymarket.com"}});async function xr(t,e,r,s,n){let i=`${e}${r}${s}`;n!==void 0&&(i+=n);let o=await globalThis.crypto.subtle.importKey("raw",Ai(t),{name:"HMAC",hash:"SHA-256"},false,["sign"]),v=await globalThis.crypto.subtle.sign("HMAC",o,new TextEncoder().encode(i));return Ci(vi(v))}function Ai(t){let e=t.replace(/-/g,"+").replace(/_/g,"/").replace(/[^A-Za-z0-9+/=]/g,""),r=atob(e),s=new Uint8Array(r.length);for(let n=0;n<r.length;n+=1)s[n]=r.charCodeAt(n);return s.buffer}function vi(t){let e=new Uint8Array(t),r="";for(let s of e)r+=String.fromCharCode(s);return btoa(r)}function Ci(t){return t.replace(/\+/g,"-").replace(/\//g,"_")}function m(t,e){let r;return {close:()=>(r===void 0&&(r=Promise.resolve(t.return()).then(()=>e())),r),[Symbol.asyncIterator](){return t[Symbol.asyncIterator]()}}}var p=class{#e=new Set;#r;constructor(e){this.#r=e?.deriveServerState??(()=>{});}add(e,r={}){let s={queue:pushable({objectMode:true})};r.matches!==void 0&&(s.matches=r.matches);let n={subscription:e,subscriber:s};return {change:this.#s(n),entry:n}}#s(e){let r=this.serverState();return this.#e.add(e),{before:r,after:this.serverState()}}remove(e){let r=this.serverState();return this.#e.delete(e),e.subscriber.queue.end(),{before:r,after:this.serverState()}}dispatch(e){for(let{subscriber:r}of this.#e)(r.matches===void 0||r.matches(e))&&r.queue.push(e);}hasActiveSubscriptions(){return this.#e.size>0}endAll(e){for(let{subscriber:r}of this.#e)r.queue.end(e);this.#e.clear();}serverState(){return this.#r(this.#e)}};function fe(t,e,r){let s=F(r.assetsIds,e.assetsIds),n=F(e.assetsIds,r.assetsIds);s.length>0&&t(Mr(s,r.customFeatureEnabled));let i=r.assetsIds[0];s.length===0&&e.customFeatureEnabled!==r.customFeatureEnabled&&i!==void 0&&t(Mr([i],r.customFeatureEnabled)),n.length>0&&t(ki(n));}function he(t,e,r){if(r.includeAllMarkets){!e.includeAllMarkets&&e.markets.length>0&&t(Or(e.markets));return}if(e.includeAllMarkets){r.markets.length>0&&t(Ir(r.markets));return}let s=F(r.markets,e.markets),n=F(e.markets,r.markets);s.length>0&&t(Ir(s)),n.length>0&&t(Or(n));}function Fr(t){let e=new Set,r=false;for(let{subscription:s}of t){for(let n of s.tokenIds)e.add(n);r||=s.customFeatureEnabled===true;}return {assetsIds:Array.from(e),customFeatureEnabled:r}}function Lr(t){let e=false,r=new Set;for(let{subscription:s}of t){if(Qr(s)){e=true;continue}for(let n of s.markets??[])r.add(n);}return {includeAllMarkets:e,markets:e?[]:Array.from(r)}}function Dr(t){return {assets_ids:t.assetsIds,custom_feature_enabled:t.customFeatureEnabled,type:"market"}}function Mr(t,e){return {assets_ids:t,custom_feature_enabled:e,operation:"subscribe"}}function ki(t){return {assets_ids:t,operation:"unsubscribe"}}function Br(t,e){let r={auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},type:"user"};return t.includeAllMarkets||(r.markets=t.markets),r}function Ir(t){return {markets:t,operation:"subscribe"}}function Or(t){return {markets:t,operation:"unsubscribe"}}function Wr(t){return e=>{switch(e.type){case "price_change":return e.payload.priceChanges.some(r=>t.tokenIds.includes(r.tokenId));case "new_market":return t.customFeatureEnabled===true;case "market_resolved":return t.customFeatureEnabled===true&&(e.payload.tokenIds??[]).some(r=>t.tokenIds.includes(r));case "best_bid_ask":return t.customFeatureEnabled===true&&t.tokenIds.includes(e.payload.tokenId);default:return t.tokenIds.includes(e.payload.tokenId)}}}function Ur(t){if(Qr(t))return ()=>true;let e=new Set((t.markets??[]).map(r=>r.toLowerCase()));return r=>e.has(r.payload.market.toLowerCase())}function Qr(t){return (t.markets?.length??0)===0}function F(t,e){let r=new Set(e);return t.filter(s=>!r.has(s))}var S=class{#e;#r;#s;#o=new od({heartbeat:new jd});#i=new nd;#t=new p({deriveServerState:Fr});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:Wr(e)});return await this.#n(s,r),m(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){let{before:s,after:n}=r;try{(await this.#u()).reusedOpenSocket&&fe(o=>this.#o.send(o),s,n);}catch(i){throw await this.#a(e),i}}async#a(e){let{before:r,after:s}=this.#t.remove(e);if(!this.#t.hasActiveSubscriptions()){await this.close();return}fe(n=>this.#o.send(n),r,s);}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#m(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff(),this.#h();}#p(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=MarketEventSchema.safeParse(s);n.success&&this.#t.dispatch(n.data);}}#m(){this.#t.hasActiveSubscriptions()&&this.#l();}#f(){}#h(){this.#o.send(Dr(this.#t.serverState()));}#l(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var P=class{#e;#r;#s;#o;#i=new od({heartbeat:new jd});#t=new nd;#n=new p({deriveServerState:Lr});constructor(e){this.#e=e.credentials,this.#r=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:Ur(e)});return await this.#a(s,r),m(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){let{before:s,after:n}=r;try{(await this.#c()).reusedOpenSocket&&he(o=>this.#i.send(o),s,n);}catch(i){throw await this.#d(e),i}}async#d(e){let{before:r,after:s}=this.#n.remove(e);if(!this.#n.hasActiveSubscriptions()){await this.close();return}he(n=>this.#i.send(n),r,s);}async close(){this.#o===void 0&&(this.#o=this.#u().finally(()=>{this.#o=void 0;})),await this.#o;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#f(),onError:()=>this.#h(),onMessage:e=>this.#m(e),onOpen:e=>this.#p(e),prepare:()=>this.#e,headers:this.#r,url:this.#s})}#p(e){this.#t.resetBackoff(),this.#l(e);}#m(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=UserEventSchema.safeParse(s);n.success&&this.#n.dispatch(n.data);}}#f(){this.#n.hasActiveSubscriptions()&&this.#y();}#h(){}#l(e){this.#i.send(Br(this.#n.serverState(),e));}#y(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};var R=class{#e;#r;#s;#o;#i=new Set;#t=new Set;#n=new Set;#a=false;constructor(e){this.#e=e.chainId,this.#r=e.headers,this.#s=e.restUrl,this.#o=e.wsUrl;}connect(e){if(this.#a)return Promise.reject(new c("Perps session manager has been shut down."));let r=new qd({chainId:this.#e,credentials:e,headers:this.#r,onClose:n=>this.#d(n),restUrl:this.#s,wsUrl:this.#o});this.#t.add(r);let s;return s=(async()=>{try{if(await r.connect(),this.#a)throw await r.close(),new c("Perps session manager has been shut down.");return this.#i.add(r),r}catch(n){throw await r.close(),n}finally{this.#n.delete(s),this.#t.delete(r);}})(),this.#n.add(s),s}async shutdown(){this.#a=true;let e=Array.from(this.#i),r=Array.from(this.#t),s=Array.from(this.#n);this.#i.clear(),this.#t.clear(),this.#n.clear(),await Promise.allSettled([...e.map(n=>n.close()),...r.map(n=>n.close()),...s.map(n=>n.catch(()=>{}))]).then(()=>{});}#d(e){this.#i.delete(e),this.#t.delete(e);}};var b=class{#e;#r;#s;#o=1;#i=new od({heartbeat:new md});#t=new nd;#n=new p({deriveServerState:Mi});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:Oi(e)});return await this.#a(s,r),m(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){try{(await this.#c()).reusedOpenSocket&&(this.#l(Hr(r.before,r.after)),this.#y(_r(r.before,r.after)));}catch(s){throw await this.#d(e),s}}async#d(e){let{before:r,after:s}=this.#n.remove(e);this.#l(Hr(r,s)),this.#y(_r(r,s)),this.#n.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#u().finally(()=>{this.#s=void 0;})),await this.#s;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#f(),onError:()=>this.#h(),onMessage:e=>this.#m(e),onOpen:()=>this.#p(),headers:this.#e,url:this.#r})}#p(){this.#t.resetBackoff(),this.#l(Array.from(this.#n.serverState()));}#m(e){let r=PerpsMarketDataEventSchema.safeParse(e);r.success&&this.#n.dispatch(r.data);}#f(){this.#n.hasActiveSubscriptions()&&this.#b();}#h(){}#l(e){e.length!==0&&this.#i.send(this.#S("sub",e));}#y(e){e.length!==0&&this.#i.send(this.#S("unsub",e));}#S(e,r){return {id:this.#o++,req:e,chs:r}}#b(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};function Mi(t){let e=new Set,r=new Set,s=new Set,n=false,i=false;for(let{subscription:o}of t)switch(o.topic){case "perps.tickers":o.instrumentId===void 0?n=true:r.add(o.instrumentId);break;case "perps.statistics":o.instrumentId===void 0?i=true:s.add(o.instrumentId);break;default:e.add(Ii(o));}if(n)e.add("tickers::all");else for(let o of r)e.add(`tickers::${o}`);if(i)e.add("statistics::all");else for(let o of s)e.add(`statistics::${o}`);return e}function Hr(t,e){return Array.from(e).filter(r=>!t.has(r))}function _r(t,e){return Array.from(t).filter(r=>!e.has(r))}function Ii(t){switch(t.topic){case "perps.trades":return `trades::${t.instrumentId}`;case "perps.bbo":return `bbo::${t.instrumentId}`;case "perps.book":return `book::${t.instrumentId}`;case "perps.candles":return `klines::${t.instrumentId}::${t.interval}`;case "perps.tickers":return t.instrumentId===void 0?"tickers::all":`tickers::${t.instrumentId}`;case "perps.statistics":return t.instrumentId===void 0?"statistics::all":`statistics::${t.instrumentId}`;default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function Oi(t){switch(t.topic){case "perps.trades":return e=>e.topic==="perps.trades"&&e.channel===`trades::${t.instrumentId}`;case "perps.bbo":case "perps.book":return e=>e.topic===t.topic&&e.payload.instrumentId===t.instrumentId;case "perps.candles":return e=>e.topic==="perps.candles"&&e.payload.instrumentId===t.instrumentId&&e.payload.interval===t.interval;case "perps.tickers":case "perps.statistics":return e=>e.topic===t.topic&&(t.instrumentId===void 0||e.payload.instrumentId===t.instrumentId);default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function jr(t,e){return {...e,quote:r=>t.quote(e,r)}}function zr(t,e){let r=e.rfqId,s=e.quoteId;return {...e,confirm:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Confirm),decline:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Decline)}}function $r(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Nr(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Gr(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Yr(t,e){let r=J(t);return {auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},identity:{maker_address:r.maker,signature_type:r.signatureType,signer_address:r.signer},type:"auth"}}function Jr(t,e){return {price_e6:e.price.toString(),rfq_id:t.rfqId,signed_order:e.signedOrder,size_e6:e.size.toString(),type:"RFQ_QUOTE"}}function Zr(t,e,r){let s=J(t);return {maker_address:s.maker,quote_id:r,rfq_id:e,signer_address:s.signer,type:"RFQ_QUOTE_CANCEL"}}function Xr(t,e,r){return {decision:r,quote_id:e,rfq_id:t,type:"RFQ_CONFIRMATION_RESPONSE"}}var L=class{#e=new Map;#r;constructor(e){this.#r=e;}waitFor(e,r){let s=Li(),n,i=setNonBlockingTimeout(()=>{this.remove(e,n),s.reject(new h$1(r));},this.#r);n=s.promise.finally(()=>clearTimeout(i));let o=this.#e.get(e)??[];return o.push({...s,promise:n}),this.#e.set(e,o),n}resolve(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.resolve(r));}reject(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.reject(r));}remove(e,r){let s=this.#e.get(e);if(s===void 0)return;let n=s.filter(i=>i.promise!==r);n.length===0?this.#e.delete(e):this.#e.set(e,n);}rejectAll(e){for(let r of this.#e.values())for(let s of r)s.reject(e);this.#e.clear();}};function Li(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var ts="0x0000000000000000000000000000000000000000000000000000000000000000";async function ss(t){let e=J(t.account),r={builder:ts,maker:e.maker,makerAmount:toBaseUnits(Di(t.orderSide,t.orderPrice,t.size)),metadata:ts,salt:Ui().toString(),side:Wi(t.orderSide),signatureType:e.signatureType,signer:e.signer,takerAmount:toBaseUnits(Bi(t.orderSide,t.orderPrice,t.size)),timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:t.tokenId},s;try{s=await t.signer.signTypedData(Rc({domain:rs(t),order:r}));}catch(n){throw l.fromError(n,"Could not sign the RFQ quote order.")}return {...r,signature:Sc({domain:rs(t),order:r,signature:s})}}function rs(t){return {chainId:t.chainId,exchange:t.exchange,protocolVersion:"3"}}function Di(t,e,r){return t===OrderSide.SELL?r.toString():((e*r+999999n)/1000000n).toString()}function Bi(t,e,r){return t===OrderSide.SELL?(e*r/1000000n).toString():r.toString()}function Wi(t){return t===OrderSide.BUY?0:1}function Ui(){let t=new Uint8Array(8);return globalThis.crypto.getRandomValues(t),BigInt(`0x${Array.from(t,e=>e.toString(16).padStart(2,"0")).join("")}`)}var os=DecimalishSchema.transform(t=>us(t)).refine(t=>t<=BigInt(Number.MAX_SAFE_INTEGER),{message:"Value exceeds the temporary numeric wire limit."}),_i=z.strictObject({price:os.refine(t=>t<1000000n,{message:"Price must be less than 1."}),size:os.optional(),source:z.enum(["collateral","inventory"]).default("collateral")});function as(t){return G(t,_i)}async function cs(t){let e=t.response.price,r=t.response.size===void 0?zi(t.request.requestedSize,e):t.response.size,s=await ss({account:t.account,chainId:t.chainId,exchange:t.exchange,orderPrice:Vi(t.request,t.response.source,e),orderSide:ji(t.response.source),signer:t.signer,size:r,tokenId:Ki(t.request,t.response.source)});return {price:e,signedOrder:s,size:r}}function Ki(t,e){return t.direction===RfqDirection.Buy?e==="collateral"?t.noPositionId:t.yesPositionId:e==="collateral"?t.yesPositionId:t.noPositionId}function Vi(t,e,r){return t.direction===RfqDirection.Buy&&e==="collateral"||t.direction===RfqDirection.Sell&&e==="inventory"?1000000n-r:r}function ji(t){return t==="collateral"?OrderSide.BUY:OrderSide.SELL}function zi(t,e){let r=us(t.value);return t.unit===RfqRequestedSizeUnit.Shares?r:r*1000000n/e}function us(t){let e=/^(\d+)(?:\.(\d*))?$/.exec(t);if(e===null)throw new a("Value must be a valid decimal.");let[,r="",s=""]=e;if(s.length>6)throw new a("Value must have at most 6 decimal places.");let n=BigInt(r)*1000000n+BigInt(s.padEnd(6,"0"));if(n<=0n)throw new a("Value must be greater than 0.");return n}var Ji=3e4,Zi=3e4,g=class{#e;#r;#s;#o;#i;#t;#n;#a;#d;#u;#c=false;constructor(e){this.#e=e.account,this.#r=e.chainId,this.#s=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.signer,this.#n=e.url;}async connect(){if(this.#c)throw new c("RFQ quoter manager has been shut down.");if(this.#a!==void 0){if(!this.#a.closed)return this.#a;this.#a=void 0;}if(this.#u!==void 0)return this.#u;let e=new Re({account:this.#e,chainId:this.#r,credentials:this.#s,exchange:this.#o,headers:this.#i,onClose:()=>this.#p(e),signer:this.#t,url:this.#n});this.#d=e;let r;return r=(async()=>{try{if(await e.connect(),this.#c)throw await e.close(),new c("RFQ quoter manager has been shut down.");return this.#a=e,e}catch(s){throw await e.close(),s}finally{this.#u===r&&(this.#u=void 0),this.#d===e&&(this.#d=void 0);}})(),this.#u=r,r}async shutdown(){this.#c=true;let e=this.#a,r=this.#d,s=this.#u;this.#a=void 0,this.#d=void 0,this.#u=void 0,await Promise.allSettled([e?.close(),r?.close(),s?.catch(()=>{})]).then(()=>{});}#p(e){this.#a===e&&(this.#a=void 0),this.#d===e&&(this.#d=void 0);}},Re=class{#e;#r;#s;#o;#i;#t;#n;#a;#d=new od;#u=pushable({objectMode:true});#c=new L(Zi);#p;#m;constructor(e){this.#e=e.account,this.#r=e.chainId,this.#s=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.onClose,this.#n=e.signer,this.#a=e.url;}get closed(){return this.#p!==void 0}async connect(){let e=Xi();this.#m=e;let r=setNonBlockingTimeout(()=>{e.reject(new c("RFQ quoter authentication timed out."));},Ji);try{await this.#d.connect({headers:this.#i,onConnectionLost:s=>this.#g(s),onError:()=>{},onMessage:s=>this.#P(s),onOpen:()=>this.#b(),url:this.#a}),await e.promise;}finally{clearTimeout(r),this.#m=void 0;}}async#f(e){if(!this.#d.send(e))throw new c("RFQ quoter websocket is not open.")}async close(){this.#p===void 0&&(this.#p=this.#h()),await this.#p;}[Symbol.asyncIterator](){return this.#u[Symbol.asyncIterator]()}async#h(){let e=new c("RFQ quoter websocket closed.");this.#S(e),this.#u.end(),await this.#d.close(),this.#t();}async#l(e){this.#p===void 0&&(this.#p=this.#y(e)),await this.#p;}async#y(e){this.#S(e),this.#u.end(e),await this.#d.close(),this.#t();}#S(e){this.#m?.reject(e),this.#c.rejectAll(e);}#b(){this.#d.send(Yr(this.#e,this.#s));}#P(e){if(this.#p!==void 0||!RfqKnownInboundMessageSchema.safeParse(e).success)return;let r=RfqQuoterInboundMessageSchema.safeParse(e);if(!r.success){let n=new c("Invalid RFQ quoter message.",{cause:r.error});this.#l(n);return}let s=r.data;switch(s.type){case "auth":this.#R(s);return;case "quote_request":this.#u.push(jr(this,s));return;case "quote_ack":this.#c.resolve(D(s.rfqId),$r(s));return;case "quote_cancel_ack":this.#c.resolve(be(s.rfqId,s.quoteId),Nr(s));return;case "confirmation_request":this.#u.push(zr(this,s));return;case "confirmation_ack":this.#c.resolve(Pe(s.rfqId,s.quoteId),Gr(s));return;case "execution_update":this.#u.push(s);return;case "trade":this.#u.push(s);return;case "rfq_error":this.#q(s);return}}#R(e){if(e.success===true){this.#m?.resolve(void 0);return}this.#m?.reject(new c(`RFQ quoter authentication failed: ${e.error}`));}#g(e$1){this.#l(new e("RFQ quoter connection lost.",e$1));}#q(e){if(e.requestType==="RFQ_QUOTE"){if(e.rfqId===void 0){this.#l(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(D(e.rfqId),new Me(e.message,{code:e.code,errorId:e.errorId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_QUOTE_CANCEL"){if(e.rfqId===void 0||e.quoteId===void 0){this.#l(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(be(e.rfqId,e.quoteId),new Oe(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_CONFIRMATION_RESPONSE"){if(e.rfqId===void 0||e.quoteId===void 0){this.#l(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(Pe(e.rfqId,e.quoteId),new Qe(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));}}async quote(e,r){let s=as(r),n=await cs({account:this.#e,chainId:this.#r,exchange:this.#o,request:e,response:s,signer:this.#n}),i=this.#c.waitFor(D(e.rfqId),`Timed out waiting for RFQ quote acknowledgement for ${e.rfqId}.`);try{return await this.#f(Jr(e,n)),await i}catch(o){throw this.#c.remove(D(e.rfqId),i),o}}async cancelQuote(e){let r=be(e.rfqId,e.quoteId),s=this.#c.waitFor(r,`Timed out waiting for RFQ quote cancellation acknowledgement for ${e.rfqId}.`);try{return await this.#f(Zr(this.#e,e.rfqId,e.quoteId)),await s}catch(n){throw this.#c.remove(r,s),n}}async respondToConfirmation(e,r,s){let n=Pe(e,r),i=this.#c.waitFor(n,`Timed out waiting for RFQ confirmation acknowledgement for ${e}.`);try{return await this.#f(Xr(e,r,s)),await i}catch(o){throw this.#c.remove(n,i),o}}};function D(t){return `ACK_RFQ_QUOTE:${t}`}function be(t,e){return `ACK_RFQ_QUOTE_CANCEL:${t}:${e}`}function Pe(t,e){return `ACK_RFQ_CONFIRMATION_RESPONSE:${t}:${e}`}function Xi(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var q=class{#e;#r;#s;#o=new od({heartbeat:new kd});#i=new nd;#t=new p({deriveServerState:so});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:ao(e)});return await this.#n(s,r),m(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){try{if((await this.#u()).reusedOpenSocket){let{before:n,after:i}=r,o=to(n,i);this.#l(o);}}catch(s){throw await this.#a(e),s}}async#a(e){let{before:r,after:s}=this.#t.remove(e),n=ro(r,s);this.#y(n),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#m(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff(),this.#h();}#p(e){let r=RealtimeEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#m(){this.#t.hasActiveSubscriptions()&&this.#S();}#f(){}#h(){this.#l(Array.from(this.#t.serverState().values()));}#l(e){e.length!==0&&this.#o.send(no(e));}#y(e){e.length!==0&&this.#o.send(io(e));}#S(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};function to(t,e){return Array.from(e).flatMap(([r,s])=>t.has(r)?[]:[s])}function ro(t,e){return Array.from(t).flatMap(([r,s])=>e.has(r)?[]:[s])}function so(t){let e=new Map;for(let{subscription:r}of t)for(let s of oo(r))e.has(s.key)||e.set(s.key,s);return e}function no(t){return {action:"subscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function io(t){return {action:"unsubscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function oo(t){switch(t.topic){case "comments":return (t.types??["comment_created"]).map(e=>B("comments",e));case "prices.crypto.binance":return [B("crypto_prices","update")];case "prices.crypto.chainlink":return [B("crypto_prices_chainlink","update")];case "prices.equity.pyth":return [B("equity_prices","update")];default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}function B(t,e){return {key:`${t}:${e}`,topic:t,type:e}}function ao(t){switch(t.topic){case "comments":return e=>!(e.topic!=="comments"||t.types!==void 0&&t.types.length>0&&!t.types.includes(e.type)||(t.parentEntityId!==void 0||t.parentEntityType!==void 0)&&(!(e.type==="comment_created"||e.type==="comment_removed")||t.parentEntityId!==void 0&&e.payload.parentEntityID!==t.parentEntityId||t.parentEntityType!==void 0&&e.payload.parentEntityType!==t.parentEntityType));case "prices.crypto.binance":return e=>e.topic==="prices.crypto.binance"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink":return e=>e.topic==="prices.crypto.chainlink"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.equity.pyth":return e=>e.topic==="prices.equity.pyth"&&e.payload.symbol.toLowerCase()===t.symbol.toLowerCase()&&(t.types===void 0||t.types.length===0||t.types.includes(e.type));default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}var A=class{#e;#r;#s;#o=new od({heartbeat:new ld});#i=new nd;#t=new p;constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{entry:r}=this.#t.add(e);return await this.#n(r),m(r.subscriber.queue,()=>this.#a(r))}async#n(e){try{await this.#u();}catch(r){throw await this.#a(e),r}}async#a(e){this.#t.remove(e),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#m(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff();}#p(e){let r=SportsResultEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#m(){this.#t.hasActiveSubscriptions()&&this.#h();}#f(){}#h(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var W=class{#e;#r;get context(){return this.#e}get decorators(){return this.#r}get environment(){return this.context.environment}get clob(){return this.context.clob}get relayer(){return this.context.relayer}get rpc(){return this.context.rpc}get gamma(){return this.context.gamma}get data(){return this.context.data}get rfq(){return this.context.rfq}get perps(){return this.context.perps}get webSockets(){return this.context.webSockets}get supportsGasless(){return this.context.apiKey?.supportGasless??false}constructor(e){this.#e=e,this.#r=[];}async resolveClobHeaders(e){return this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):Promise.resolve({})}async resolveRelayerHeaders(e){return this.context.apiKey?.supportGasless?this.context.apiKey.authorize(e):Promise.resolve({})}rememberDecorator(e){this.#r.push(e);}},ho=z.object({key:ApiKeySchema,passphrase:z.string(),secret:z.string()}),yo=z.object({wallet:EvmAddressSchema,credentials:ho.optional(),nonce:z.number().int().nonnegative().optional()}).superRefine((t,e)=>{t.credentials!==void 0&&t.nonce!==void 0&&e.addIssue({code:"custom",message:"`credentials` and `nonce` are mutually exclusive.",path:["nonce"]});}).transform(t=>t.credentials!==void 0?{wallet:t.wallet,credentials:t.credentials}:t.nonce!==void 0?{wallet:t.wallet,nonce:t.nonce}:{wallet:t.wallet}),U=class extends W{constructor(e){super({apiKey:e.apiKey,environment:e.environment,data:new id({headers:e.environment.data.headers,root:e.environment.data.rest}),gamma:new id({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),clob:new id({headers:e.environment.clob.headers,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new id({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rfq:new id({headers:e.environment.rfq.headers,root:e.environment.rfq.rest}),perps:new id({headers:e.environment.perps.headers,root:e.environment.perps.rest}),rpc:new H({url:e.environment.rpc}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),sports:new A({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new q({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws})}});}isSecureClient(){return false}isPublicClient(){return true}async closeSubscriptions(){await Promise.all([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close()]).then(()=>{});}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}beginAuthentication(e,r){let s=G(e,yo);return Promise.resolve(async function*(){let n=Math.floor(Date.now()/1e3),i=s?.nonce??0,o=expectEvmAddress(yield wa()),v=expectEvmAddress(s.wallet),ve=I$1(this.environment,o,v);if(s.credentials!==void 0){let Ce=this.#e(s.credentials,ve,r);try{if((await $a(Ce)).includes(s.credentials.key))return Ce}catch(T){if(!(T instanceof f)||T.status!==401)throw T}}let ls=yield {kind:"signAuthMessage",payload:vr({address:o,chainId:this.environment.chainId,nonce:i,timestamp:n})},ms=await Za(this,{address:o,nonce:i,signature:expectEvmSignature(ls),timestamp:n});return this.#e(ms,ve,r)}.call(this))}#e(e,r,s){let n=new Ae({account:r,apiKey:this.context.apiKey,credentials:e,environment:this.environment,signer:s});for(let i of this.decorators)n.extend(i);return n}},Ae=class extends W{#e=false;get context(){return invariant(!this.#e,"This client has ended authentication and can no longer be used."),super.context}endAuthenticationLifecycle(){this.#e=true;}constructor(e){super({account:e.account,credentials:e.credentials,apiKey:e.apiKey,environment:e.environment,signer:e.signer,clob:new id({headers:e.environment.clob.headers,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new id({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rpc:new H({url:e.environment.rpc}),gamma:new id({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),data:new id({headers:e.environment.data.headers,root:e.environment.data.rest}),rfq:new id({headers:e.environment.rfq.headers,root:e.environment.rfq.rest}),perps:new id({headers:e.environment.perps.headers,root:e.environment.perps.rest}),secureClob:new id({headers:e.environment.clob.headers,resolveHeaders:async r=>({...await this.resolveClobHeaders(r),...await this.#r(r)}),root:e.environment.clob.rest}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),clobUser:new P({credentials:e.credentials,headers:e.environment.clob.user.headers,url:e.environment.clob.user.ws}),rfqQuoter:new g({account:e.account,chainId:e.environment.chainId,credentials:e.credentials,exchange:e.environment.contracts.exchangeV3,headers:e.environment.rfq.headers,signer:e.signer,url:e.environment.rfq.ws}),sports:new A({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new q({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws}),perpsSession:new R({chainId:e.environment.chainId,headers:e.environment.perps.headers,restUrl:e.environment.perps.rest,wsUrl:e.environment.perps.ws})}});}get credentials(){return this.context.credentials}get account(){return this.context.account}get signer(){return this.context.signer}setupGaslessWallet(){return Promise.resolve(this)}get secureClob(){return this.context.secureClob}get webSockets(){return this.context.webSockets}async closeSubscriptions(){await Promise.allSettled([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close(),this.webSockets.clobUser.close()]).then(()=>{});}isSecureClient(){return true}isPublicClient(){return false}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}async endAuthentication(){let e=this.closeSubscriptions(),r=this.webSockets.perpsSession.shutdown(),s=this.webSockets.rfqQuoter.shutdown(),{apiKey:n,environment:i}=this.context;try{await bb(this);}finally{this.endAuthenticationLifecycle(),await Promise.allSettled([e,r,s]).then(()=>{});}let o=new U({apiKey:n,environment:i});for(let v of this.decorators)o.extend(v);return o}async#r(e){try{let r=Math.floor(Date.now()/1e3);return {POLY_ADDRESS:this.account.signer,POLY_API_KEY:this.credentials.key,POLY_PASSPHRASE:this.credentials.passphrase,POLY_SIGNATURE:await xr(this.credentials.secret,r,e.method,e.path,e.body),POLY_TIMESTAMP:`${r}`}}catch(r){throw l.fromError(r,"Could not sign the L2-authenticated request")}}};function ps(t={}){return new U({environment:t.environment??le,apiKey:t.apiKey}).extend(Tr)}var So=m$1(j,g$1,f,l,h$1,i,c,b$1,a),bo=m$1(a);async function Po(t){let e=ps({environment:t.environment,apiKey:t.apiKey}),r=await Ro(e,t),s=await e.beginAuthentication({wallet:r,credentials:t.credentials,nonce:t.nonce},t.signer).then(va(t.signer));if(s.account.walletType===WalletType.EOA||await Aa(s,{wallet:s.account.wallet,type:s.account.walletType}))return s;if(s.account.walletType===WalletType.DEPOSIT_WALLET)return await go(s),s;throw new a(`Wallet ${s.account.wallet} does not exist. Provide an existing wallet address, or omit wallet to use the default Deposit Wallet flow.`)}async function Ro(t,e){if(e.wallet!==void 0)return e.wallet;let r=expectEvmAddress(await e.signer.getAddress()),s=K(r,t.environment.walletDerivation);return await Aa(t,{wallet:s,type:WalletType.DEPOSIT_WALLET})?s:L$1(r,t.environment.walletDerivation)}async function go(t){let e=L$1(t.account.signer,t.environment.walletDerivation);if(!isSameEvmAddress(t.account.wallet,e))throw new a(`Wallet ${t.account.wallet} does not match the expected Deposit Wallet ${e} for this signer, nor a deployed wallet address.`);await(await Da(t)).wait();}
2
- export{So as CreateSecureClientError,bo as SetupGaslessWalletError,ie as accountActions,Tr as allActions,oe as analyticsActions,xr as buildHmacSignature,ps as createPublicClient,Po as createSecureClient,ae as dataActions,ce as discoveryActions,qi as forkEnvironmentConfig,ue as perpsActions,ac as preproduction,le as production,Pi as relayerApiKey,bi as remoteBuilderSigning,de as rewardsActions,Cr as rfqActions,pe as subscriptionsActions,Er as tradingActions,kr as walletActions};//# sourceMappingURL=index.js.map
1
+ import {N,X,V,T,ra,pa,be as be$1,$d,Zd,Xd,Vd,Td,lc,jc,hc,jb,na,xc,zc,Lc,Pb,Nb,Lb,Jb,Hb,Fb,Db,Bb,zb,nb,lb,fc,Zb,Xb,Vb,Le,uf,jf,hf,bf,sf,qf,of,mf,nc,ff,df,vc,tc,rc,pc,dc,bc,$b,Qd,Nd,Md,Pd,la,ja,ha,fa,da,ba,Te,kf,R as R$1,P as P$1,Jc,Hc,Fc,Dc,Qc,Pc,hd,fd,dd,bd,Je,Ee,ve,yf,Pa,La,Ta,va,Aa,K,L as L$1,Da,Ed,Cd,Ad,wd,ud,sd,Gd,yd,Bc,Tb,Rb,H,id,G,wa,I as I$1,$a,Za,od,md,nd,kd,ld,jd,bb,qd,Me,Oe,Qe,J,Rc,Sc}from'./chunk-PB6EZLUZ.js';export{Oa as ApproveErc1155ForAllError,Ka as ApproveErc20Error,Gc as CancelAllError,Ic as CancelMarketOrdersError,Cc as CancelOrderError,Ec as CancelOrdersError,C as CombinatorialPrepareConditionCallError,sa as ComboActivityType,ce as ComboPositionOutcome,Rd as ComboPositionSort,de as ComboPositionStatus,ed as CreateLimitOrderError,ad as CreateMarketOrderError,q as CtfRedeemPositionsCallError,Kd as DepositToPerpsError,ae as DownloadAccountingSnapshotError,W as DropNotificationsError,b as Erc20ApprovalCallError,m as Erc20TransferCallError,Kc as EstimateMarketPriceError,M as FetchClosedOnlyModeError,Wb as FetchCommentsByIdError,ac as FetchEventError,ec as FetchEventLiveVolumeError,cc as FetchEventTagsError,Kb as FetchLastTradePriceError,Mb as FetchLastTradePricesError,sc as FetchMarketError,uc as FetchMarketTagsError,kb as FetchMidpointError,mb as FetchMidpointsError,U as FetchNotificationsError,Cb as FetchOrderBookError,Eb as FetchOrderBooksError,Q as FetchOrderError,aa as FetchOrderScoringError,ca as FetchOrdersScoringError,xd as FetchPerpsBookError,Fd as FetchPerpsFeesError,rd as FetchPerpsInstrumentsError,td as FetchPerpsTickerError,vd as FetchPerpsTickersError,Yd as FetchPortfolioValueError,yb as FetchPriceError,Ob as FetchPriceHistoryError,Ab as FetchPricesError,Ke as FetchPublicProfileError,rf as FetchRelatedTagResourcesError,pf as FetchRelatedTagsError,ka as FetchRewardPercentagesError,ef as FetchSeriesError,if as FetchSportsMarketTypesError,Gb as FetchSpreadError,Ib as FetchSpreadsError,nf as FetchTagError,ga as FetchTotalEarningsForUserForDayError,_d as FetchTradedMarketCountError,S as ListAccountTradesError,oa as ListActivityError,gc as ListBuilderLeaderboardError,ib as ListBuilderTradesError,ic as ListBuilderVolumeError,Ud as ListClosedPositionsError,qa as ListComboActivityError,qc as ListComboMarketsError,Wd as ListComboPositionsError,Yb as ListCommentsByUserAddressError,Ub as ListCommentsError,Qb as ListCurrentRewardsError,_b as ListEventsError,wc as ListMarketHoldersError,Ac as ListMarketPositionsError,Sb as ListMarketRewardsError,oc as ListMarketsError,yc as ListOpenInterestError,O as ListOpenOrdersError,zd as ListPerpsCandlesError,Bd as ListPerpsFundingHistoryError,Dd as ListPerpsTradesError,Sd as ListPositionsError,cf as ListSeriesError,gf as ListSportsError,lf as ListTagsError,tf as ListTeamsError,kc as ListTraderLeaderboardError,ma as ListTradesError,ia as ListUserEarningsAndMarketsConfigError,ea as ListUserEarningsForDayError,a as MAX_UINT256,t as MergePositionsCallError,ze as MergePositionsError,y as MergeV2CallError,Hd as OpenPerpsSessionError,Se as OpenRfqSessionError,o as PerpsDepositCallError,gd as PlaceLimitOrderError,cd as PlaceMarketOrderError,Nc as PostOrderError,Oc as PostOrdersError,Ie as RedeemPositionsError,A as RedeemV2CallError,Id as RevokePerpsCredentialsError,Pe as RfqCancelQuoteError,Oe as RfqCancelQuoteRejectedError,Ue as RfqConfirmationDecision,Re as RfqConfirmationError,Qe as RfqConfirmationRejectedError,Ve as RfqDirection,We as RfqErrorCode,Xe as RfqExecutionStatus,Ye as RfqKnownErrorCode,Ne as RfqQuoteError,Me as RfqQuoteRejectedError,Ze as RfqRequestedSizeUnit,_e as RfqSide,af as SearchError,$e as SearchSort,Sa as SetupTradingApprovalsError,r as SplitPositionCallError,qe as SplitPositionError,w as SplitV2CallError,xf as TransferErc20Error,pd as UpdatePerpsLeverageError,ta as WaitForTransactionError,Ld as WithdrawFromPerpsError,D as combinatorialPrepareConditionCall,v as ctfRedeemPositionsCall,l as decodeErc1155BalanceOfBatchResult,j as decodeErc1155BalanceOfResult,h as decodeErc1155IsApprovedForAllResult,e as decodeErc20AllowanceResult,E as encodeProxyCall,F as encodeSafeMultisendCall,f as erc1155ApprovalForAllCall,k as erc1155BalanceOfBatchCall,i as erc1155BalanceOfCall,g as erc1155IsApprovedForAllCall,d as erc20AllowanceCall,c as erc20ApprovalCall,n as erc20TransferCall,ua as expectTransactionHandle,u as mergePositionsCall,z as mergeV2Call,p as perpsDepositCall,B as redeemV2Call,s as splitPositionCall,x as splitV2Call}from'./chunk-PB6EZLUZ.js';import {a,m as m$1,j,g as g$1,f,l,h as h$1,i,c,b as b$1,e}from'./chunk-TYJAXA3Y.js';export{j as CancelledSigningError,e as ConnectionLostError,k as InsufficientLiquidityError,g as RateLimitError,f as RequestRejectedError,l as SigningError,h as TimeoutError,i as TransactionFailedError,c as TransportError,b as UnexpectedResponseError,a as UserInputError,d as WebSocketKnownCloseCode,m as makeErrorGuard}from'./chunk-TYJAXA3Y.js';import {DecimalishSchema,ApiKeySchema,EvmAddressSchema,toBaseUnits,OrderSide}from'@polymarket/bindings';export{OrderSide,OrderType}from'@polymarket/bindings';export{PriceHistoryInterval,SignatureType}from'@polymarket/bindings/clob';export{ActivityType}from'@polymarket/bindings/data';import {WalletType}from'@polymarket/bindings/gamma';export{WalletType}from'@polymarket/bindings/gamma';export{PerpsDepositStatus,PerpsInstrumentCategory,PerpsInstrumentType,PerpsInternalTransferDirection,PerpsKlineInterval,PerpsOrderStatus,PerpsSide,PerpsTimeInForce,PerpsWithdrawalStatus}from'@polymarket/bindings/perps';import {z}from'zod';import {expectEvmAddress,isSameEvmAddress,expectEvmSignature,invariant,setNonBlockingTimeout}from'@polymarket/types';import {PerpsMarketDataEventSchema,RealtimeEventSchema,SportsResultEventSchema,MarketEventSchema,UserEventSchema}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import {RfqQuoterInboundMessageSchema,RfqConfirmationDecision,RfqRequestedSizeUnit,RfqDirection}from'@polymarket/bindings/rfq';var Si=z.object({POLY_BUILDER_API_KEY:z.string().min(1),POLY_BUILDER_TIMESTAMP:z.string().min(1),POLY_BUILDER_PASSPHRASE:z.string().min(1),POLY_BUILDER_SIGNATURE:z.string().min(1)});function bi(t){return new se(t)}function Pi(t){return new ne(t)}var se=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return true}get supportGasless(){return true}async authorize(e){try{return await this.#s(e)}catch(r){throw l.fromError(r,"Could not authorize the builder-authenticated request")}}async#r(){let e=this.#e.headers,r=typeof e=="function"?await e():e,s=new Headers(r);return s.set("content-type","application/json"),s}async#s(e){let r=await fetch(this.#e.url,{body:JSON.stringify({body:e.body,method:e.method,path:e.path}),credentials:this.#e.credentials,headers:await this.#r(),method:"POST",mode:"cors"});if(!r.ok)throw new Error(`Remote signer rejected request with status ${r.status}`);return Si.parse(await r.json())}},ne=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return false}get supportGasless(){return true}authorize(){return Promise.resolve({RELAYER_API_KEY:this.#e.key,RELAYER_API_KEY_ADDRESS:this.#e.address})}};function vr(t){return {domain:{chainId:t.chainId,name:"ClobAuthDomain",version:"1"},message:{address:t.address,message:"This message attests that I control the given wallet",nonce:t.nonce??0,timestamp:`${t.timestamp}`},primaryType:"ClobAuth",types:{ClobAuth:[{name:"address",type:"address"},{name:"timestamp",type:"string"},{name:"nonce",type:"uint256"},{name:"message",type:"string"}]}}}function Ri(t){return {listPositions:Td.bind(null,t),listClosedPositions:Vd.bind(null,t),listComboPositions:Xd.bind(null,t),fetchPortfolioValue:Zd.bind(null,t),fetchTradedMarketCount:$d.bind(null,t),downloadAccountingSnapshot:be$1.bind(null,t),listMarketPositions:Bc.bind(null,t),listActivity:pa.bind(null,t),listComboActivity:ra.bind(null,t)}}function h(t,e={}){return {...e,user:e.user??t.account.wallet}}function ie(t){let e=Ri(t);return t.isPublicClient()?e:{...e,listPositions:r=>Td(t,h(t,r)),listClosedPositions:r=>Vd(t,h(t,r)),listComboPositions:r=>Xd(t,h(t,r)),fetchPortfolioValue:r=>Zd(t,h(t,r)),fetchTradedMarketCount:r=>$d(t,h(t,r)),downloadAccountingSnapshot:r=>be$1(t,h(t,r)),listActivity:r=>pa(t,h(t,r)),listComboActivity:r=>ra(t,h(t,r)),listAccountTrades:T.bind(null,t),fetchNotifications:V.bind(null,t),dropNotifications:X.bind(null,t),fetchClosedOnlyMode:N.bind(null,t)}}function oe(t){return {listBuilderTrades:jb.bind(null,t),listBuilderLeaderboard:hc.bind(null,t),fetchBuilderVolume:jc.bind(null,t),listTraderLeaderboard:lc.bind(null,t)}}function ae(t){return {fetchEventLiveVolume:fc.bind(null,t),fetchMidpoint:lb.bind(null,t),fetchMidpoints:nb.bind(null,t),fetchPrice:zb.bind(null,t),fetchPrices:Bb.bind(null,t),fetchOrderBook:Db.bind(null,t),fetchOrderBooks:Fb.bind(null,t),fetchSpread:Hb.bind(null,t),fetchSpreads:Jb.bind(null,t),fetchLastTradePrice:Lb.bind(null,t),fetchLastTradePrices:Nb.bind(null,t),fetchPriceHistory:Pb.bind(null,t),estimateMarketPrice:Lc.bind(null,t),listOpenInterest:zc.bind(null,t),listMarketHolders:xc.bind(null,t),listTrades:na.bind(null,t)}}function ce(t){return {listEvents:$b.bind(null,t),fetchEvent:bc.bind(null,t),fetchEventTags:dc.bind(null,t),listMarkets:pc.bind(null,t),listComboMarkets:rc.bind(null,t),fetchMarket:tc.bind(null,t),fetchMarketTags:vc.bind(null,t),listSeries:df.bind(null,t),fetchSeries:ff.bind(null,t),listMarketClarifications:nc.bind(null,t),listTags:mf.bind(null,t),fetchTag:of.bind(null,t),fetchRelatedTags:qf.bind(null,t),fetchRelatedTagResources:sf.bind(null,t),search:bf.bind(null,t),listSports:hf.bind(null,t),fetchSportsMarketTypes:jf.bind(null,t),listTeams:uf.bind(null,t),fetchPublicProfile:Le.bind(null,t),listComments:Vb.bind(null,t),fetchCommentsById:Xb.bind(null,t),listCommentsByUserAddress:Zb.bind(null,t)}}function ue(t){let e={fetchPerpsBook:r=>yd(t,r),fetchPerpsFees:()=>Gd(t),fetchPerpsInstruments:r=>sd(t,r),fetchPerpsTicker:r=>ud(t,r),fetchPerpsTickers:r=>wd(t,r),listPerpsCandles:r=>Ad(t,r),listPerpsFundingHistory:r=>Cd(t,r),listPerpsTrades:r=>Ed(t,r)};return t.isSecureClient()?{...e,depositToPerps:r=>Pd(t,r),openPerpsSession:r=>Md(t,r),revokePerpsCredentials:r=>Nd(t,r),withdrawFromPerps:r=>Qd(t,r)}:e}function gi(t){return {listCurrentRewards:Rb.bind(null,t),listMarketRewards:Tb.bind(null,t)}}function de(t){let e=gi(t);return t.isPublicClient()?e:{...e,fetchOrderScoring:ba.bind(null,t),fetchOrdersScoring:da.bind(null,t),listUserEarningsForDay:fa.bind(null,t),fetchTotalEarningsForUserForDay:ha.bind(null,t),listUserEarningsAndMarketsConfig:ja.bind(null,t),fetchRewardPercentages:la.bind(null,t)}}function Cr(t){return {openRfqSession(){return Te(t)}}}function pe(t){return t.isSecureClient()?{subscribe(e){return kf(t,e)}}:{subscribe(e){return kf(t,e)}}}function Er(t){return {createMarketOrder:bd.bind(null,t),placeMarketOrder:dd.bind(null,t),createLimitOrder:fd.bind(null,t),placeLimitOrder:hd.bind(null,t),postOrder:Pc(t),postOrders:Qc(t),cancelOrder:Dc.bind(null,t),cancelOrders:Fc.bind(null,t),cancelAll:Hc.bind(null,t),cancelMarketOrders:Jc.bind(null,t),listOpenOrders:P$1.bind(null,t),fetchOrder:R$1.bind(null,t)}}function kr(t){return {isGaslessReady:()=>Promise.resolve(true),setupTradingApprovals:Ta.bind(null,t),approveErc20:La.bind(null,t),approveErc1155ForAll:Pa.bind(null,t),transferErc20:yf.bind(null,t),splitPosition:ve.bind(null,t),mergePositions:Ee.bind(null,t),redeemPositions:Je.bind(null,t)}}function Tr(t){return t.isSecureClient()?{...ie(t),...oe(t),...ae(t),...ce(t),...ue(t),...de(t),...Cr(t),...pe(t),...Er(t),...kr(t)}:{...ie(t),...oe(t),...ae(t),...ce(t),...ue(t),...de(t),...pe(t)}}var le={name:"production",chainId:137,rpc:"https://polygon.drpc.org",walletDerivation:{depositWalletFactory:expectEvmAddress("0x00000000000Fb5C9ADea0298D729A0CB3823Cc07"),depositWalletBeacon:expectEvmAddress("0x7A18EDfe055488A3128f01F563e5B479D92ffc3a"),depositWalletImplementation:expectEvmAddress("0x58CA52ebe0DadfdF531Cde7062e76746de4Db1eB"),proxyFactory:expectEvmAddress("0xaB45c5A4B0c941a2F231C04C3f49182e1A254052"),proxyImplementation:expectEvmAddress("0x44e999d5c2F66Ef0861317f9A4805AC2e90aEB4f"),safeFactory:expectEvmAddress("0xaacFeEa03eb1561C4e67d661e40682Bd20E3541b"),safeInitCodeHash:"0x2bce2127ff07fb632d16c8347c4ebf501f4841168bed00d9e6ef715ddb6fcecf"},contracts:{collateralToken:expectEvmAddress("0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB"),conditionalTokens:expectEvmAddress("0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"),negRiskAdapter:expectEvmAddress("0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296"),collateralAdapter:expectEvmAddress("0xAdA100Db00Ca00073811820692005400218FcE1f"),negRiskCollateralAdapter:expectEvmAddress("0xadA2005600Dec949baf300f4C6120000bDB6eAab"),standardExchange:expectEvmAddress("0xE111180000d2663C0091e4f400237545B87B996B"),negRiskExchange:expectEvmAddress("0xe2222d279d744050d28e00520010520000310F59"),exchangeV3:expectEvmAddress("0xe3333700cA9d93003F00f0F71f8515005F6c00Aa"),protocolV2Router:expectEvmAddress("0x12121212006e4CD160D18e3f00711DA5c3372600"),combinatorialModule:expectEvmAddress("0x30000034706c7d8e12009dab006be20000c031a8"),positionManager:expectEvmAddress("0x006F54F7f9A22e0000CC2AB60031000000ae9fEF"),autoRedeemOperator:expectEvmAddress("0xa1200000d0002264C9a1698e001292D00E1b00af"),safeMultisend:expectEvmAddress("0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761"),relayHub:expectEvmAddress("0xD216153c06E857cD7f72665E0aF1d7D82172F494"),perpsDepositContract:expectEvmAddress("0xDCa4af75705dbB50f62437045afF9921947917d2")},clob:{rest:"https://clob.polymarket.com",market:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/market"},user:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/user"}},relayer:{rest:"https://relayer-v2.polymarket.com"},gamma:{rest:"https://gamma-api.polymarket.com"},data:{rest:"https://data-api.polymarket.com"},rfq:{rest:"https://combos-rfq-api.polymarket.com",ws:"wss://combos-rfq-gateway-quoter.polymarket.com/ws/rfq"},perps:{rest:"https://api.perpetuals.polymarket.com",ws:"wss://ws.perpetuals.polymarket.com/v1/ws"},rtds:{ws:"wss://ws-live-data.polymarket.com"},sports:{ws:"wss://sports-api.polymarket.com/ws"},relayerMaxPolls:100,relayerPollFrequencyMs:2e3};function qi(t,e=le){return {...e,...t,walletDerivation:{...e.walletDerivation,...t.walletDerivation},contracts:{...e.contracts,...t.contracts},clob:{...I(e.clob,t.clob),market:O(e.clob.market,t.clob?.market),user:O(e.clob.user,t.clob?.user)},relayer:I(e.relayer,t.relayer),gamma:I(e.gamma,t.gamma),data:I(e.data,t.data),rfq:wr(e.rfq,t.rfq),perps:wr(e.perps,t.perps),rtds:O(e.rtds,t.rtds),sports:O(e.sports,t.sports)}}function I(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function O(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function wr(t,e){return {...t,...e,headers:me(t.headers,e?.headers)}}function me(t,e){if(!(t===void 0&&e===void 0))return {...t,...e}}var oc=qi({name:"preproduction",clob:{rest:"https://clob-preprod-int-v2.polymarket.com"},data:{rest:"https://data-api-preprod-int.polymarket.com"},gamma:{rest:"https://gamma-api-preprod-int.polymarket.com"},relayer:{rest:"https://relayer-v2-preprod-int.polymarket.com"}});async function xr(t,e,r,s,n){let i=`${e}${r}${s}`;n!==void 0&&(i+=n);let o=await globalThis.crypto.subtle.importKey("raw",Ai(t),{name:"HMAC",hash:"SHA-256"},false,["sign"]),v=await globalThis.crypto.subtle.sign("HMAC",o,new TextEncoder().encode(i));return Ci(vi(v))}function Ai(t){let e=t.replace(/-/g,"+").replace(/_/g,"/").replace(/[^A-Za-z0-9+/=]/g,""),r=atob(e),s=new Uint8Array(r.length);for(let n=0;n<r.length;n+=1)s[n]=r.charCodeAt(n);return s.buffer}function vi(t){let e=new Uint8Array(t),r="";for(let s of e)r+=String.fromCharCode(s);return btoa(r)}function Ci(t){return t.replace(/\+/g,"-").replace(/\//g,"_")}function m(t,e){let r;return {close:()=>(r===void 0&&(r=Promise.resolve(t.return()).then(()=>e())),r),[Symbol.asyncIterator](){return t[Symbol.asyncIterator]()}}}var p=class{#e=new Set;#r;constructor(e){this.#r=e?.deriveServerState??(()=>{});}add(e,r={}){let s={queue:pushable({objectMode:true})};r.matches!==void 0&&(s.matches=r.matches);let n={subscription:e,subscriber:s};return {change:this.#s(n),entry:n}}#s(e){let r=this.serverState();return this.#e.add(e),{before:r,after:this.serverState()}}remove(e){let r=this.serverState();return this.#e.delete(e),e.subscriber.queue.end(),{before:r,after:this.serverState()}}dispatch(e){for(let{subscriber:r}of this.#e)(r.matches===void 0||r.matches(e))&&r.queue.push(e);}hasActiveSubscriptions(){return this.#e.size>0}endAll(e){for(let{subscriber:r}of this.#e)r.queue.end(e);this.#e.clear();}serverState(){return this.#r(this.#e)}};function fe(t,e,r){let s=F(r.assetsIds,e.assetsIds),n=F(e.assetsIds,r.assetsIds);s.length>0&&t(Mr(s,r.customFeatureEnabled));let i=r.assetsIds[0];s.length===0&&e.customFeatureEnabled!==r.customFeatureEnabled&&i!==void 0&&t(Mr([i],r.customFeatureEnabled)),n.length>0&&t(ki(n));}function he(t,e,r){if(r.includeAllMarkets){!e.includeAllMarkets&&e.markets.length>0&&t(Or(e.markets));return}if(e.includeAllMarkets){r.markets.length>0&&t(Ir(r.markets));return}let s=F(r.markets,e.markets),n=F(e.markets,r.markets);s.length>0&&t(Ir(s)),n.length>0&&t(Or(n));}function Fr(t){let e=new Set,r=false;for(let{subscription:s}of t){for(let n of s.tokenIds)e.add(n);r||=s.customFeatureEnabled===true;}return {assetsIds:Array.from(e),customFeatureEnabled:r}}function Lr(t){let e=false,r=new Set;for(let{subscription:s}of t){if(Qr(s)){e=true;continue}for(let n of s.markets??[])r.add(n);}return {includeAllMarkets:e,markets:e?[]:Array.from(r)}}function Dr(t){return {assets_ids:t.assetsIds,custom_feature_enabled:t.customFeatureEnabled,type:"market"}}function Mr(t,e){return {assets_ids:t,custom_feature_enabled:e,operation:"subscribe"}}function ki(t){return {assets_ids:t,operation:"unsubscribe"}}function Br(t,e){let r={auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},type:"user"};return t.includeAllMarkets||(r.markets=t.markets),r}function Ir(t){return {markets:t,operation:"subscribe"}}function Or(t){return {markets:t,operation:"unsubscribe"}}function Wr(t){return e=>{switch(e.type){case "price_change":return e.payload.priceChanges.some(r=>t.tokenIds.includes(r.tokenId));case "new_market":return t.customFeatureEnabled===true;case "market_resolved":return t.customFeatureEnabled===true&&(e.payload.tokenIds??[]).some(r=>t.tokenIds.includes(r));case "best_bid_ask":return t.customFeatureEnabled===true&&t.tokenIds.includes(e.payload.tokenId);default:return t.tokenIds.includes(e.payload.tokenId)}}}function Ur(t){if(Qr(t))return ()=>true;let e=new Set((t.markets??[]).map(r=>r.toLowerCase()));return r=>e.has(r.payload.market.toLowerCase())}function Qr(t){return (t.markets?.length??0)===0}function F(t,e){let r=new Set(e);return t.filter(s=>!r.has(s))}var S=class{#e;#r;#s;#o=new od({heartbeat:new jd});#i=new nd;#t=new p({deriveServerState:Fr});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:Wr(e)});return await this.#n(s,r),m(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){let{before:s,after:n}=r;try{(await this.#u()).reusedOpenSocket&&fe(o=>this.#o.send(o),s,n);}catch(i){throw await this.#a(e),i}}async#a(e){let{before:r,after:s}=this.#t.remove(e);if(!this.#t.hasActiveSubscriptions()){await this.close();return}fe(n=>this.#o.send(n),r,s);}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff(),this.#h();}#p(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=MarketEventSchema.safeParse(s);n.success&&this.#t.dispatch(n.data);}}#l(){this.#t.hasActiveSubscriptions()&&this.#m();}#f(){}#h(){this.#o.send(Dr(this.#t.serverState()));}#m(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var P=class{#e;#r;#s;#o;#i=new od({heartbeat:new jd});#t=new nd;#n=new p({deriveServerState:Lr});constructor(e){this.#e=e.credentials,this.#r=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:Ur(e)});return await this.#a(s,r),m(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){let{before:s,after:n}=r;try{(await this.#c()).reusedOpenSocket&&he(o=>this.#i.send(o),s,n);}catch(i){throw await this.#d(e),i}}async#d(e){let{before:r,after:s}=this.#n.remove(e);if(!this.#n.hasActiveSubscriptions()){await this.close();return}he(n=>this.#i.send(n),r,s);}async close(){this.#o===void 0&&(this.#o=this.#u().finally(()=>{this.#o=void 0;})),await this.#o;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#f(),onError:()=>this.#h(),onMessage:e=>this.#l(e),onOpen:e=>this.#p(e),prepare:()=>this.#e,headers:this.#r,url:this.#s})}#p(e){this.#t.resetBackoff(),this.#m(e);}#l(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=UserEventSchema.safeParse(s);n.success&&this.#n.dispatch(n.data);}}#f(){this.#n.hasActiveSubscriptions()&&this.#y();}#h(){}#m(e){this.#i.send(Br(this.#n.serverState(),e));}#y(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};var R=class{#e;#r;#s;#o;#i=new Set;#t=new Set;#n=new Set;#a=false;constructor(e){this.#e=e.chainId,this.#r=e.headers,this.#s=e.restUrl,this.#o=e.wsUrl;}connect(e){if(this.#a)return Promise.reject(new c("Perps session manager has been shut down."));let r=new qd({chainId:this.#e,credentials:e,headers:this.#r,onClose:n=>this.#d(n),restUrl:this.#s,wsUrl:this.#o});this.#t.add(r);let s;return s=(async()=>{try{if(await r.connect(),this.#a)throw await r.close(),new c("Perps session manager has been shut down.");return this.#i.add(r),r}catch(n){throw await r.close(),n}finally{this.#n.delete(s),this.#t.delete(r);}})(),this.#n.add(s),s}async shutdown(){this.#a=true;let e=Array.from(this.#i),r=Array.from(this.#t),s=Array.from(this.#n);this.#i.clear(),this.#t.clear(),this.#n.clear(),await Promise.allSettled([...e.map(n=>n.close()),...r.map(n=>n.close()),...s.map(n=>n.catch(()=>{}))]).then(()=>{});}#d(e){this.#i.delete(e),this.#t.delete(e);}};var b=class{#e;#r;#s;#o=1;#i=new od({heartbeat:new md});#t=new nd;#n=new p({deriveServerState:Mi});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:Oi(e)});return await this.#a(s,r),m(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){try{(await this.#c()).reusedOpenSocket&&(this.#m(Hr(r.before,r.after)),this.#y(_r(r.before,r.after)));}catch(s){throw await this.#d(e),s}}async#d(e){let{before:r,after:s}=this.#n.remove(e);this.#m(Hr(r,s)),this.#y(_r(r,s)),this.#n.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#u().finally(()=>{this.#s=void 0;})),await this.#s;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#f(),onError:()=>this.#h(),onMessage:e=>this.#l(e),onOpen:()=>this.#p(),headers:this.#e,url:this.#r})}#p(){this.#t.resetBackoff(),this.#m(Array.from(this.#n.serverState()));}#l(e){let r=PerpsMarketDataEventSchema.safeParse(e);r.success&&this.#n.dispatch(r.data);}#f(){this.#n.hasActiveSubscriptions()&&this.#b();}#h(){}#m(e){e.length!==0&&this.#i.send(this.#S("sub",e));}#y(e){e.length!==0&&this.#i.send(this.#S("unsub",e));}#S(e,r){return {id:this.#o++,req:e,chs:r}}#b(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};function Mi(t){let e=new Set,r=new Set,s=new Set,n=false,i=false;for(let{subscription:o}of t)switch(o.topic){case "perps.tickers":o.instrumentId===void 0?n=true:r.add(o.instrumentId);break;case "perps.statistics":o.instrumentId===void 0?i=true:s.add(o.instrumentId);break;default:e.add(Ii(o));}if(n)e.add("tickers::all");else for(let o of r)e.add(`tickers::${o}`);if(i)e.add("statistics::all");else for(let o of s)e.add(`statistics::${o}`);return e}function Hr(t,e){return Array.from(e).filter(r=>!t.has(r))}function _r(t,e){return Array.from(t).filter(r=>!e.has(r))}function Ii(t){switch(t.topic){case "perps.trades":return `trades::${t.instrumentId}`;case "perps.bbo":return `bbo::${t.instrumentId}`;case "perps.book":return `book::${t.instrumentId}`;case "perps.candles":return `klines::${t.instrumentId}::${t.interval}`;case "perps.tickers":return t.instrumentId===void 0?"tickers::all":`tickers::${t.instrumentId}`;case "perps.statistics":return t.instrumentId===void 0?"statistics::all":`statistics::${t.instrumentId}`;default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function Oi(t){switch(t.topic){case "perps.trades":return e=>e.topic==="perps.trades"&&e.channel===`trades::${t.instrumentId}`;case "perps.bbo":case "perps.book":return e=>e.topic===t.topic&&e.payload.instrumentId===t.instrumentId;case "perps.candles":return e=>e.topic==="perps.candles"&&e.payload.instrumentId===t.instrumentId&&e.payload.interval===t.interval;case "perps.tickers":case "perps.statistics":return e=>e.topic===t.topic&&(t.instrumentId===void 0||e.payload.instrumentId===t.instrumentId);default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function jr(t,e){return {...e,quote:r=>t.quote(e,r)}}function zr(t,e){let r=e.rfqId,s=e.quoteId;return {...e,confirm:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Confirm),decline:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Decline)}}function $r(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Nr(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Gr(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Yr(t,e){let r=J(t);return {auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},identity:{maker_address:r.maker,signature_type:r.signatureType,signer_address:r.signer},type:"auth"}}function Jr(t,e){return {price_e6:e.price.toString(),rfq_id:t.rfqId,signed_order:e.signedOrder,size_e6:e.size.toString(),type:"RFQ_QUOTE"}}function Zr(t,e,r){let s=J(t);return {maker_address:s.maker,quote_id:r,rfq_id:e,signer_address:s.signer,type:"RFQ_QUOTE_CANCEL"}}function Xr(t,e,r){return {decision:r,quote_id:e,rfq_id:t,type:"RFQ_CONFIRMATION_RESPONSE"}}var L=class{#e=new Map;#r;constructor(e){this.#r=e;}waitFor(e,r){let s=Li(),n,i=setNonBlockingTimeout(()=>{this.remove(e,n),s.reject(new h$1(r));},this.#r);n=s.promise.finally(()=>clearTimeout(i));let o=this.#e.get(e)??[];return o.push({...s,promise:n}),this.#e.set(e,o),n}resolve(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.resolve(r));}reject(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.reject(r));}remove(e,r){let s=this.#e.get(e);if(s===void 0)return;let n=s.filter(i=>i.promise!==r);n.length===0?this.#e.delete(e):this.#e.set(e,n);}rejectAll(e){for(let r of this.#e.values())for(let s of r)s.reject(e);this.#e.clear();}};function Li(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var ts="0x0000000000000000000000000000000000000000000000000000000000000000";async function ss(t){let e=J(t.account),r={builder:ts,maker:e.maker,makerAmount:toBaseUnits(Di(t.orderSide,t.orderPrice,t.size)),metadata:ts,salt:Ui().toString(),side:Wi(t.orderSide),signatureType:e.signatureType,signer:e.signer,takerAmount:toBaseUnits(Bi(t.orderSide,t.orderPrice,t.size)),timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:t.tokenId},s;try{s=await t.signer.signTypedData(Rc({domain:rs(t),order:r}));}catch(n){throw l.fromError(n,"Could not sign the RFQ quote order.")}return {...r,signature:Sc({domain:rs(t),order:r,signature:s})}}function rs(t){return {chainId:t.chainId,exchange:t.exchange,protocolVersion:"3"}}function Di(t,e,r){return t===OrderSide.SELL?r.toString():((e*r+999999n)/1000000n).toString()}function Bi(t,e,r){return t===OrderSide.SELL?(e*r/1000000n).toString():r.toString()}function Wi(t){return t===OrderSide.BUY?0:1}function Ui(){let t=new Uint8Array(8);return globalThis.crypto.getRandomValues(t),BigInt(`0x${Array.from(t,e=>e.toString(16).padStart(2,"0")).join("")}`)}var os=DecimalishSchema.transform(t=>us(t)).refine(t=>t<=BigInt(Number.MAX_SAFE_INTEGER),{message:"Value exceeds the temporary numeric wire limit."}),_i=z.strictObject({price:os.refine(t=>t<1000000n,{message:"Price must be less than 1."}),size:os.optional(),source:z.enum(["collateral","inventory"]).default("collateral")});function as(t){return G(t,_i)}async function cs(t){let e=t.response.price,r=t.response.size===void 0?zi(t.request.requestedSize,e):t.response.size,s=await ss({account:t.account,chainId:t.chainId,exchange:t.exchange,orderPrice:Vi(t.request,t.response.source,e),orderSide:ji(t.response.source),signer:t.signer,size:r,tokenId:Ki(t.request,t.response.source)});return {price:e,signedOrder:s,size:r}}function Ki(t,e){return t.direction===RfqDirection.Buy?e==="collateral"?t.noPositionId:t.yesPositionId:e==="collateral"?t.yesPositionId:t.noPositionId}function Vi(t,e,r){return t.direction===RfqDirection.Buy&&e==="collateral"||t.direction===RfqDirection.Sell&&e==="inventory"?1000000n-r:r}function ji(t){return t==="collateral"?OrderSide.BUY:OrderSide.SELL}function zi(t,e){let r=us(t.value);return t.unit===RfqRequestedSizeUnit.Shares?r:r*1000000n/e}function us(t){let e=/^(\d+)(?:\.(\d*))?$/.exec(t);if(e===null)throw new a("Value must be a valid decimal.");let[,r="",s=""]=e;if(s.length>6)throw new a("Value must have at most 6 decimal places.");let n=BigInt(r)*1000000n+BigInt(s.padEnd(6,"0"));if(n<=0n)throw new a("Value must be greater than 0.");return n}var Yi=3e4,Ji=3e4,g=class{#e;#r;#s;#o;#i;#t;#n;#a;#d;#u;#c=false;constructor(e){this.#e=e.account,this.#r=e.chainId,this.#s=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.signer,this.#n=e.url;}async connect(){if(this.#c)throw new c("RFQ quoter manager has been shut down.");if(this.#a!==void 0){if(!this.#a.closed)return this.#a;this.#a=void 0;}if(this.#u!==void 0)return this.#u;let e=new Re({account:this.#e,chainId:this.#r,credentials:this.#s,exchange:this.#o,headers:this.#i,onClose:()=>this.#p(e),signer:this.#t,url:this.#n});this.#d=e;let r;return r=(async()=>{try{if(await e.connect(),this.#c)throw await e.close(),new c("RFQ quoter manager has been shut down.");return this.#a=e,e}catch(s){throw await e.close(),s}finally{this.#u===r&&(this.#u=void 0),this.#d===e&&(this.#d=void 0);}})(),this.#u=r,r}async shutdown(){this.#c=true;let e=this.#a,r=this.#d,s=this.#u;this.#a=void 0,this.#d=void 0,this.#u=void 0,await Promise.allSettled([e?.close(),r?.close(),s?.catch(()=>{})]).then(()=>{});}#p(e){this.#a===e&&(this.#a=void 0),this.#d===e&&(this.#d=void 0);}},Re=class{#e;#r;#s;#o;#i;#t;#n;#a;#d=new od;#u=pushable({objectMode:true});#c=new L(Ji);#p;#l;constructor(e){this.#e=e.account,this.#r=e.chainId,this.#s=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.onClose,this.#n=e.signer,this.#a=e.url;}get closed(){return this.#p!==void 0}async connect(){let e=Zi();this.#l=e;let r=setNonBlockingTimeout(()=>{e.reject(new c("RFQ quoter authentication timed out."));},Yi);try{await this.#d.connect({headers:this.#i,onConnectionLost:s=>this.#g(s),onError:()=>{},onMessage:s=>this.#P(s),onOpen:()=>this.#b(),url:this.#a}),await e.promise;}finally{clearTimeout(r),this.#l=void 0;}}async#f(e){if(!this.#d.send(e))throw new c("RFQ quoter websocket is not open.")}async close(){this.#p===void 0&&(this.#p=this.#h()),await this.#p;}[Symbol.asyncIterator](){return this.#u[Symbol.asyncIterator]()}async#h(){let e=new c("RFQ quoter websocket closed.");this.#S(e),this.#u.end(),await this.#d.close(),this.#t();}async#m(e){this.#p===void 0&&(this.#p=this.#y(e)),await this.#p;}async#y(e){this.#S(e),this.#u.end(e),await this.#d.close(),this.#t();}#S(e){this.#l?.reject(e),this.#c.rejectAll(e);}#b(){this.#d.send(Yr(this.#e,this.#s));}#P(e){if(this.#p!==void 0)return;let r=RfqQuoterInboundMessageSchema.safeParse(e);if(!r.success)return;let s=r.data;switch(s.type){case "auth":this.#R(s);return;case "quote_request":this.#u.push(jr(this,s));return;case "quote_ack":this.#c.resolve(D(s.rfqId),$r(s));return;case "quote_cancel_ack":this.#c.resolve(be(s.rfqId,s.quoteId),Nr(s));return;case "confirmation_request":this.#u.push(zr(this,s));return;case "confirmation_ack":this.#c.resolve(Pe(s.rfqId,s.quoteId),Gr(s));return;case "execution_update":this.#u.push(s);return;case "trade":this.#u.push(s);return;case "rfq_error":this.#q(s);return}}#R(e){if(e.success===true){this.#l?.resolve(void 0);return}this.#l?.reject(new c(`RFQ quoter authentication failed: ${e.error}`));}#g(e$1){this.#m(new e("RFQ quoter connection lost.",e$1));}#q(e){if(e.requestType==="RFQ_QUOTE"){if(e.rfqId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(D(e.rfqId),new Me(e.message,{code:e.code,errorId:e.errorId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_QUOTE_CANCEL"){if(e.rfqId===void 0||e.quoteId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(be(e.rfqId,e.quoteId),new Oe(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_CONFIRMATION_RESPONSE"){if(e.rfqId===void 0||e.quoteId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(Pe(e.rfqId,e.quoteId),new Qe(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));}}async quote(e,r){let s=as(r),n=await cs({account:this.#e,chainId:this.#r,exchange:this.#o,request:e,response:s,signer:this.#n}),i=this.#c.waitFor(D(e.rfqId),`Timed out waiting for RFQ quote acknowledgement for ${e.rfqId}.`);try{return await this.#f(Jr(e,n)),await i}catch(o){throw this.#c.remove(D(e.rfqId),i),o}}async cancelQuote(e){let r=be(e.rfqId,e.quoteId),s=this.#c.waitFor(r,`Timed out waiting for RFQ quote cancellation acknowledgement for ${e.rfqId}.`);try{return await this.#f(Zr(this.#e,e.rfqId,e.quoteId)),await s}catch(n){throw this.#c.remove(r,s),n}}async respondToConfirmation(e,r,s){let n=Pe(e,r),i=this.#c.waitFor(n,`Timed out waiting for RFQ confirmation acknowledgement for ${e}.`);try{return await this.#f(Xr(e,r,s)),await i}catch(o){throw this.#c.remove(n,i),o}}};function D(t){return `ACK_RFQ_QUOTE:${t}`}function be(t,e){return `ACK_RFQ_QUOTE_CANCEL:${t}:${e}`}function Pe(t,e){return `ACK_RFQ_CONFIRMATION_RESPONSE:${t}:${e}`}function Zi(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var q=class{#e;#r;#s;#o=new od({heartbeat:new kd});#i=new nd;#t=new p({deriveServerState:ro});constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:oo(e)});return await this.#n(s,r),m(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){try{if((await this.#u()).reusedOpenSocket){let{before:n,after:i}=r,o=eo(n,i);this.#m(o);}}catch(s){throw await this.#a(e),s}}async#a(e){let{before:r,after:s}=this.#t.remove(e),n=to(r,s);this.#y(n),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff(),this.#h();}#p(e){let r=RealtimeEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#l(){this.#t.hasActiveSubscriptions()&&this.#S();}#f(){}#h(){this.#m(Array.from(this.#t.serverState().values()));}#m(e){e.length!==0&&this.#o.send(so(e));}#y(e){e.length!==0&&this.#o.send(no(e));}#S(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};function eo(t,e){return Array.from(e).flatMap(([r,s])=>t.has(r)?[]:[s])}function to(t,e){return Array.from(t).flatMap(([r,s])=>e.has(r)?[]:[s])}function ro(t){let e=new Map;for(let{subscription:r}of t)for(let s of io(r))e.has(s.key)||e.set(s.key,s);return e}function so(t){return {action:"subscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function no(t){return {action:"unsubscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function io(t){switch(t.topic){case "comments":return (t.types??["comment_created"]).map(e=>B("comments",e));case "prices.crypto.binance":return [B("crypto_prices","update")];case "prices.crypto.chainlink":return [B("crypto_prices_chainlink","update")];case "prices.equity.pyth":return [B("equity_prices","update")];default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}function B(t,e){return {key:`${t}:${e}`,topic:t,type:e}}function oo(t){switch(t.topic){case "comments":return e=>!(e.topic!=="comments"||t.types!==void 0&&t.types.length>0&&!t.types.includes(e.type)||(t.parentEntityId!==void 0||t.parentEntityType!==void 0)&&(!(e.type==="comment_created"||e.type==="comment_removed")||t.parentEntityId!==void 0&&e.payload.parentEntityID!==t.parentEntityId||t.parentEntityType!==void 0&&e.payload.parentEntityType!==t.parentEntityType));case "prices.crypto.binance":return e=>e.topic==="prices.crypto.binance"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink":return e=>e.topic==="prices.crypto.chainlink"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.equity.pyth":return e=>e.topic==="prices.equity.pyth"&&e.payload.symbol.toLowerCase()===t.symbol.toLowerCase()&&(t.types===void 0||t.types.length===0||t.types.includes(e.type));default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}var A=class{#e;#r;#s;#o=new od({heartbeat:new ld});#i=new nd;#t=new p;constructor(e){this.#e=e.headers,this.#r=e.url;}async subscribe(e){let{entry:r}=this.#t.add(e);return await this.#n(r),m(r.subscriber.queue,()=>this.#a(r))}async#n(e){try{await this.#u();}catch(r){throw await this.#a(e),r}}async#a(e){this.#t.remove(e),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#s===void 0&&(this.#s=this.#d().finally(()=>{this.#s=void 0;})),await this.#s;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#f(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#r})}#c(){this.#i.resetBackoff();}#p(e){let r=SportsResultEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#l(){this.#t.hasActiveSubscriptions()&&this.#h();}#f(){}#h(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var W=class{#e;#r;get context(){return this.#e}get decorators(){return this.#r}get environment(){return this.context.environment}get clob(){return this.context.clob}get relayer(){return this.context.relayer}get rpc(){return this.context.rpc}get gamma(){return this.context.gamma}get data(){return this.context.data}get rfq(){return this.context.rfq}get perps(){return this.context.perps}get webSockets(){return this.context.webSockets}get supportsGasless(){return this.context.apiKey?.supportGasless??false}constructor(e){this.#e=e,this.#r=[];}async resolveClobHeaders(e){return this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):Promise.resolve({})}async resolveRelayerHeaders(e){return this.context.apiKey?.supportGasless?this.context.apiKey.authorize(e):Promise.resolve({})}rememberDecorator(e){this.#r.push(e);}},fo=z.object({key:ApiKeySchema,passphrase:z.string(),secret:z.string()}),ho=z.object({wallet:EvmAddressSchema,credentials:fo.optional(),nonce:z.number().int().nonnegative().optional()}).superRefine((t,e)=>{t.credentials!==void 0&&t.nonce!==void 0&&e.addIssue({code:"custom",message:"`credentials` and `nonce` are mutually exclusive.",path:["nonce"]});}).transform(t=>t.credentials!==void 0?{wallet:t.wallet,credentials:t.credentials}:t.nonce!==void 0?{wallet:t.wallet,nonce:t.nonce}:{wallet:t.wallet}),U=class extends W{constructor(e){super({apiKey:e.apiKey,environment:e.environment,data:new id({headers:e.environment.data.headers,root:e.environment.data.rest}),gamma:new id({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),clob:new id({headers:e.environment.clob.headers,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new id({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rfq:new id({headers:e.environment.rfq.headers,root:e.environment.rfq.rest}),perps:new id({headers:e.environment.perps.headers,root:e.environment.perps.rest}),rpc:new H({url:e.environment.rpc}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),sports:new A({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new q({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws})}});}isSecureClient(){return false}isPublicClient(){return true}async closeSubscriptions(){await Promise.all([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close()]).then(()=>{});}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}beginAuthentication(e,r){let s=G(e,ho);return Promise.resolve(async function*(){let n=Math.floor(Date.now()/1e3),i=s?.nonce??0,o=expectEvmAddress(yield wa()),v=expectEvmAddress(s.wallet),ve=I$1(this.environment,o,v);if(s.credentials!==void 0){let Ce=this.#e(s.credentials,ve,r);try{if((await $a(Ce)).includes(s.credentials.key))return Ce}catch(T){if(!(T instanceof f)||T.status!==401)throw T}}let ls=yield {kind:"signAuthMessage",payload:vr({address:o,chainId:this.environment.chainId,nonce:i,timestamp:n})},ms=await Za(this,{address:o,nonce:i,signature:expectEvmSignature(ls),timestamp:n});return this.#e(ms,ve,r)}.call(this))}#e(e,r,s){let n=new Ae({account:r,apiKey:this.context.apiKey,credentials:e,environment:this.environment,signer:s});for(let i of this.decorators)n.extend(i);return n}},Ae=class extends W{#e=false;get context(){return invariant(!this.#e,"This client has ended authentication and can no longer be used."),super.context}endAuthenticationLifecycle(){this.#e=true;}constructor(e){super({account:e.account,credentials:e.credentials,apiKey:e.apiKey,environment:e.environment,signer:e.signer,clob:new id({headers:e.environment.clob.headers,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new id({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rpc:new H({url:e.environment.rpc}),gamma:new id({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),data:new id({headers:e.environment.data.headers,root:e.environment.data.rest}),rfq:new id({headers:e.environment.rfq.headers,root:e.environment.rfq.rest}),perps:new id({headers:e.environment.perps.headers,root:e.environment.perps.rest}),secureClob:new id({headers:e.environment.clob.headers,resolveHeaders:async r=>({...await this.resolveClobHeaders(r),...await this.#r(r)}),root:e.environment.clob.rest}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),clobUser:new P({credentials:e.credentials,headers:e.environment.clob.user.headers,url:e.environment.clob.user.ws}),rfqQuoter:new g({account:e.account,chainId:e.environment.chainId,credentials:e.credentials,exchange:e.environment.contracts.exchangeV3,headers:e.environment.rfq.headers,signer:e.signer,url:e.environment.rfq.ws}),sports:new A({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new q({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws}),perpsSession:new R({chainId:e.environment.chainId,headers:e.environment.perps.headers,restUrl:e.environment.perps.rest,wsUrl:e.environment.perps.ws})}});}get credentials(){return this.context.credentials}get account(){return this.context.account}get signer(){return this.context.signer}setupGaslessWallet(){return Promise.resolve(this)}get secureClob(){return this.context.secureClob}get webSockets(){return this.context.webSockets}async closeSubscriptions(){await Promise.allSettled([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close(),this.webSockets.clobUser.close()]).then(()=>{});}isSecureClient(){return true}isPublicClient(){return false}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}async endAuthentication(){let e=this.closeSubscriptions(),r=this.webSockets.perpsSession.shutdown(),s=this.webSockets.rfqQuoter.shutdown(),{apiKey:n,environment:i}=this.context;try{await bb(this);}finally{this.endAuthenticationLifecycle(),await Promise.allSettled([e,r,s]).then(()=>{});}let o=new U({apiKey:n,environment:i});for(let v of this.decorators)o.extend(v);return o}async#r(e){try{let r=Math.floor(Date.now()/1e3);return {POLY_ADDRESS:this.account.signer,POLY_API_KEY:this.credentials.key,POLY_PASSPHRASE:this.credentials.passphrase,POLY_SIGNATURE:await xr(this.credentials.secret,r,e.method,e.path,e.body),POLY_TIMESTAMP:`${r}`}}catch(r){throw l.fromError(r,"Could not sign the L2-authenticated request")}}};function ps(t={}){return new U({environment:t.environment??le,apiKey:t.apiKey}).extend(Tr)}var yo=m$1(j,g$1,f,l,h$1,i,c,b$1,a),So=m$1(a);async function bo(t){let e=ps({environment:t.environment,apiKey:t.apiKey}),r=await Po(e,t),s=await e.beginAuthentication({wallet:r,credentials:t.credentials,nonce:t.nonce},t.signer).then(va(t.signer));if(s.account.walletType===WalletType.EOA||await Aa(s,{wallet:s.account.wallet,type:s.account.walletType}))return s;if(s.account.walletType===WalletType.DEPOSIT_WALLET)return await Ro(s),s;throw new a(`Wallet ${s.account.wallet} does not exist. Provide an existing wallet address, or omit wallet to use the default Deposit Wallet flow.`)}async function Po(t,e){if(e.wallet!==void 0)return e.wallet;let r=expectEvmAddress(await e.signer.getAddress()),s=K(r,t.environment.walletDerivation);return await Aa(t,{wallet:s,type:WalletType.DEPOSIT_WALLET})?s:L$1(r,t.environment.walletDerivation)}async function Ro(t){let e=L$1(t.account.signer,t.environment.walletDerivation);if(!isSameEvmAddress(t.account.wallet,e))throw new a(`Wallet ${t.account.wallet} does not match the expected Deposit Wallet ${e} for this signer, nor a deployed wallet address.`);await(await Da(t)).wait();}
2
+ export{yo as CreateSecureClientError,So as SetupGaslessWalletError,ie as accountActions,Tr as allActions,oe as analyticsActions,xr as buildHmacSignature,ps as createPublicClient,bo as createSecureClient,ae as dataActions,ce as discoveryActions,qi as forkEnvironmentConfig,ue as perpsActions,oc as preproduction,le as production,Pi as relayerApiKey,bi as remoteBuilderSigning,de as rewardsActions,Cr as rfqActions,pe as subscriptionsActions,Er as tradingActions,kr as walletActions};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map