@polymarket/client 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import {o,h as h$1,g,n,c,b,a,i,j,k as k$1,l as l$1,m,e}from'./chunk-DLZLJOGO.js';import {EventIdSchema,PaginationCursorSchema,OrderSideSchema,ConditionIdSchema,EvmAddressSchema,ComboConditionIdSchema,TransactionIdSchema,BuilderCodeSchema,CommentParentEntityTypeSchema,CommentIdSchema,IsoDateTimeStringSchema,IsoCalendarDateStringSchema,QuestionIdSchema,PositionIdSchema,ClobAssetIdSchema,OrderType,PositiveDecimalNumberSchema,OrderSide,TxHashSchema,MarketIdSchema,toPositionId,toBaseUnits,toRfqId,toRfqQuoteId,toBuilderCode,SessionSignerKnownScope,SessionSignerScopeSchema,TradeStatus,toPaginationCursor,toDecimalString,toComboConditionId,toConditionId}from'@polymarket/bindings';export{SessionSignerKnownScope as pg}from'@polymarket/bindings';import {AssetTypeSchema,SignatureType,AssetType,ClosedOnlyModeSchema,OpenOrdersPageSchema,END_CURSOR,OpenOrderSchema,ClobTradesPageSchema,NotificationsResponseSchema,BalanceAllowanceResponseSchema,OrderScoringResponseSchema,OrdersScoringResponseSchema,UserEarningsPageSchema,TotalUserEarningsResponseSchema,UserRewardsEarningsPageSchema,RewardsPercentagesSchema,ApiKeyCredsSchema,ApiKeysResponseSchema,BuilderApiKeyCredsSchema,BuilderApiKeysResponseSchema,PaginatedBuilderTradesSchema,MidpointSchema,MidpointsSchema,FetchTickSizeResponseSchema,FetchNegRiskResponseSchema,ResolveConditionByTokenResponseSchema,FetchMarketInfoResponseSchema,FetchBuilderFeeRatesResponseSchema,PriceSchema,PricesSchema,FetchOrderBookResponseSchema,OrderBooksSchema,SpreadSchema,SpreadsSchema,LastTradePriceSchema,LastTradePricesSchema,PaginatedCurrentRewardsSchema,PaginatedMarketRewardsSchema,CancelOrdersResponseSchema,OrderResponseSchema,OrderResponsesSchema,ActiveSessionSignersResponseSchema}from'@polymarket/bindings/clob';import {isHexString,expectNonEmptyArray,isPrivateKey,expectEvmAddress,isSameEvmAddress,ZERO_ADDRESS,PolymarketError,expectHexString,unwrap,invariant,delay,expectEvmSignature,expectErc1271Signature,ResultAsync,setNonBlockingInterval,setNonBlockingTimeout,expectPrivateKey,isPresent,ok,err,expectPresent,expectSessionSignerSignature,errAsync}from'@polymarket/types';import {z}from'zod';import {WalletType,SeriesIdSchema,MarketClarificationState,ListCommentsResponseSchema,ListEventsKeysetResponseSchema,EventSchema,FetchEventTagsResponseSchema,ListMarketClarificationsResponseSchema,ListMarketsKeysetResponseSchema,FetchMarketTagsResponseSchema,MarketSchema,PublicProfileSchema,PublicSearchResponseSchema,ListSeriesResponseSchema,SeriesSchema,ListSportsMetadataResponseSchema,SportsMarketTypesResponseSchema,ListTagsResponseSchema,TagSchema,ListRelatedTagsResponseSchema,ListRelatedTagResourcesResponseSchema,ListTeamsResponseSchema}from'@polymarket/bindings/gamma';import {AbiFunction,Hash,Bytes,AbiParameters,ContractAddress,TypedData,Secp256k1,Address,Signature}from'ox';import Ln from'ky';import {TradeFilterTypeSchema,SortDirectionSchema,ActivityTypeSchema,CanonicalMarketConditionIdSchema,LeaderboardWindowSchema,BuilderVolumeIntervalSchema,TraderLeaderboardSortSchema,PriceHistoryIntervalSchema,PriceHistoryInterval,PositionSortBySchema,PositionFilterTypeSchema,PositionStatusSchema,ComboPositionStatusSchema,ComboPositionStatus,ComboPositionSortBySchema,UserPnlFidelitySchema,UserPnlIntervalSchema,ListTradesResponseSchema,ListActivityResponseSchema,ListComboActivityResponseSchema,FetchResolutionsResponseSchema,FetchEventLiveVolumeResponseSchema,ListBuilderLeaderboardResponseSchema,FetchBuilderVolumeResponseSchema,ListTraderLeaderboardResponseSchema,FetchTraderLeaderboardStandingResponseSchema,ListBiggestWinnersResponseSchema,ListMarketHoldersResponseSchema,ListPriceHistoryResponseSchema,FetchOpenInterestResponseSchema,ListPositionsResponseSchema,ListComboPositionsResponseSchema,FetchPortfolioValueResponseSchema,FetchUserStatsResponseSchema,FetchUserPnlResponseSchema,FetchUserVolumeResponseSchema}from'@polymarket/bindings/data';export{UserPnlInterval as $e,ResolutionMarketType as Cc,ResolutionReporter as Dc,ResolutionSource as Ec,ResolutionStatus as Fc,BiggestWinnerKind as Qc,BuilderVolumeInterval as Rc,LeaderboardWindow as Sc,TraderLeaderboardSort as Tc,ComboPositionSortBy as Ve,PriceHistoryInterval as Wc,ComboPositionStatus as We,PositionFilterType as Xe,PositionSortBy as Ye,PositionStatus as Ze,UserPnlFidelity as _e,ComboActivityType as va,SortDirection as wa,TipSide as xa,TradeFilterType as ya}from'@polymarket/bindings/data';import {RelayerTransactionType,RelayerExecuteRequestSchema,RelayerTransactionState,RelayerAuthorizeSessionSignerStatus,RelayerRevokeSessionSignerStatus,RelayerExecuteParamsSchema,RelayerDeployedResponseSchema,GaslessTransactionSchema,RelayerExecuteResponseSchema,RelayerAuthorizeSessionSignerResponseSchema,RelayerRevokeSessionSignerResponseSchema}from'@polymarket/bindings/relayer';import {CollateralReturnPlanSchema,RfqRejectionCode,RfqSide,RfqRequestedSizeUnit,RfqDirection,RfqKnownErrorCode,ComboQuoteUnavailableReason,RfqStatus,ComboAcceptFailureReason,RfqExecutionStatus,CollateralReturnPlanResponseSchema,ListComboMarketsResponseSchema,BuilderRfqCreateResponseSchema,BuilderRfqStatusResponseSchema}from'@polymarket/bindings/combos';export{ComboQuoteUnavailableReason as $f,ComboAcceptFailureReason as _f,RfqConfirmationDecision as ag,RfqDirection as bg,RfqExecutionStatus as cg,RfqKnownErrorCode as dg,RfqRejectionCode as eg,RfqRequestedSizeUnit as fg,RfqSide as gg,RfqStatus as hg,CollateralReturnKnownOperationKind as lc}from'@polymarket/bindings/combos';import {PerpsPnlIntervalSchema,PerpsWithdrawalStatusSchema,PerpsDepositStatusSchema,PerpsInstrumentIdSchema,PerpsClientOrderIdSchema,PerpsOrderIdSchema,PerpsSortDirectionSchema,PerpsDecimalInputSchema,PerpsTimeInForce,PerpsPostOrderAckSchema,PerpsCommandAckSchema,PerpsInstrumentCategorySchema,PerpsKlineIntervalSchema,PerpsTradeIdSchema,PerpsTpSlKind,PerpsTpSlScope,PerpsCancelOrderResultSchema,PerpsCancelAllOrdersResponseSchema,PerpsUpdateLeverageResultSchema,FetchPerpsBalancesResponseSchema,FetchPerpsPortfolioResponseSchema,FetchPerpsAccountStatsResponseSchema,FetchPerpsAutoCancelStatusResponseSchema,FetchPerpsAccountConfigResponseSchema,FetchPerpsOpenOrdersResponseSchema,FetchPerpsOrdersResponseSchema,ListPerpsFillsResponseSchema,ListPerpsFundingPaymentsResponseSchema,ListPerpsDepositsResponseSchema,ListPerpsWithdrawalsResponseSchema,ListPerpsEquityHistoryResponseSchema,ListPerpsPnlHistoryResponseSchema,ListPerpsNotificationsResponseSchema,FetchPerpsUnreadNotificationsCountResponseSchema,MarkPerpsNotificationsReadResponseSchema,PerpsAutoCancelResponseSchema,FetchPerpsInstrumentsResponseSchema,FetchPerpsTickersResponseSchema,FetchPerpsStatisticsResponseSchema,PerpsBookSchema,FetchPerpsCandlesResponseSchema,FetchPerpsFundingHistoryResponseSchema,FetchPerpsTradesResponseSchema,FetchPerpsFeesResponseSchema,PerpsDeleteProxyResponseSchema,PerpsWithdrawResponseSchema,PerpsCreateProxyResponseSchema,PerpsCredentialsResponseSchema}from'@polymarket/bindings/perps';import {encode}from'@msgpack/msgpack';import {PerpsNotificationsResyncFrameSchema,PerpsSessionUpdateEventSchema}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import MS from'it-merge';function l(e,r){let t=r.safeParse(e);if(t.success)return t.data;throw a.fromZodError(t.error)}var k=z.number().int().positive(),An=z.object({offset:z.number().int().min(0),pageSize:k});function x(e,r,t=[]){function o(){return {async firstPage(){return {items:t,hasMore:false}},from(){return o()},async*[Symbol.asyncIterator](){}}}function n(s=r){return {firstPage(){return unwrap(e(s))},from(i){return i===void 0?o():n(i)},async*[Symbol.asyncIterator](){let i=s;for(;;){let f=await unwrap(e(i));if(yield f,!f.hasMore)return;i=f.nextCursor;}}}}return n()}function Z(e){return toPaginationCursor(btoa(JSON.stringify(An.parse(e))))}function re(e,r){if(e===void 0)return {offset:0,pageSize:r};try{return An.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid pagination cursor",{cause:t})}}function y(e){return function(t){return ResultAsync.fromPromise(t.json(),()=>new b(`Received non-JSON response from ${t.url}`)).andThen(o=>hc(t.url,e,o))}}function wn(e){return ResultAsync.fromPromise(e.blob(),()=>new b(`Received unreadable binary response from ${e.url}`))}function hc(e,r,t){let o=r.safeParse(t);return o.success?ok(o.data):err(b.fromZodError(o.error,{endpoint:e}))}var Fn=class{#e;constructor({url:r}){this.#e=r;}async ethCall(r){let t=await this.#o({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:r.to,data:r.data},"latest"]});if("error"in t)throw new g(`JSON-RPC eth_call failed: ${t.error.message}`,{cause:t.error,status:200});if(typeof t.result!="string")throw new b("Expected JSON-RPC eth_call result to be a hex string");if(!Wn(t.result))throw new b("Expected JSON-RPC eth_call result to be a hex string");return t.result}async ethCallBatch(r){return r.length===0?[]:this.#r(r)}async ethEstimateGas(r){let t={to:r.to};r.data!==void 0&&(t.data=r.data),r.from!==void 0&&(t.from=r.from),r.gasPrice!==void 0&&(t.gasPrice=Un(r.gasPrice)),r.value!==void 0&&(t.value=Un(r.value));let o=await this.#o({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[t]});if("error"in o)throw new g(`JSON-RPC eth_estimateGas failed: ${o.error.message}`,{cause:o.error,status:200});return BigInt(Bn(o.result,"eth_estimateGas"))}async#r(r){if(r.length===1)return [await this.ethCall(r[0])];try{return await this.#t(r)}catch(t){if(!(t instanceof g)||t.status<500)throw t;let o=Math.ceil(r.length/2),[n,s]=await Promise.all([this.#r(r.slice(0,o)),this.#r(r.slice(o))]);return [...n,...s]}}async#t(r){let t=await this.#s(r.map((n,s)=>({jsonrpc:"2.0",id:s+1,method:"eth_call",params:[{to:n.to,data:n.data},"latest"]}))),o=new Map;for(let n of t){if("error"in n&&n.id===null)throw new g(`JSON-RPC eth_call failed: ${n.error.message}`,{cause:n.error,status:200});n.id!==null&&o.set(n.id,n);}return r.map((n,s)=>{let i=s+1,f=o.get(i);if(f===void 0)throw new b("Expected JSON-RPC batch response for every request");if("error"in f)throw new g(`JSON-RPC eth_call failed: ${f.error.message}`,{cause:f.error,status:200});return Bn(f.result)})}async#o(r){let t;try{t=await Ln.post(this.#e,{json:r,throwHttpErrors:!1});}catch(n){throw c.fromError(n)}if(!t.ok)throw new g(`JSON-RPC request to ${this.#e} failed with status ${t.status}`,{status:t.status});let o;try{o=await t.json();}catch(n){throw new b("Expected JSON-RPC response body to be JSON",{cause:n})}if(!Mn(o))throw new b("Unexpected JSON-RPC response shape");return o}async#s(r){let t;try{t=await Ln.post(this.#e,{json:r,throwHttpErrors:!1});}catch(n){throw c.fromError(n)}if(!t.ok)throw new g(`JSON-RPC request to ${this.#e} failed with status ${t.status}`,{status:t.status});let o;try{o=await t.json();}catch(n){throw new b("Expected JSON-RPC response body to be JSON",{cause:n})}if(!Array.isArray(o)||!o.every(n=>Mn(n)))throw new b("Unexpected JSON-RPC response shape");return o}};function Dn(e){if(!(e instanceof g)||!_n(e.cause))return false;let r=[e.cause.message,Tc(e.cause.data)].join(" ").toLowerCase();return (e.cause.code===3||e.cause.code===-32e3||e.cause.code===-32003||e.cause.code===-32015||e.cause.code===-32603)&&(r.includes("execution reverted")||r.includes("revert")||r.includes("invalid opcode"))}function Mn(e){return !zn(e)||e.jsonrpc!=="2.0"?false:"error"in e?_n(e.error):"result"in e}function _n(e){return zn(e)&&typeof e.code=="number"&&typeof e.message=="string"}function zn(e){return typeof e=="object"&&e!==null}function Wn(e){return /^0x[a-fA-F0-9]*$/.test(e)}function Bn(e,r="eth_call"){if(typeof e!="string"||!Wn(e))throw new b(`Expected JSON-RPC ${r} result to be a hex string`);return e}function Un(e){return `0x${e.toString(16)}`}function Tc(e){if(e===void 0)return "";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return ""}}var jn=(t=>(t.OWNER="OWNER",t.SESSION_KEY="SESSION_KEY",t))(jn||{}),Cc="0x0000000000000000000000000000000000000000000000000000000000000000",Ic="0x6492649264926492649264926492649264926492649264926492649264926492";function Eh(e,r,t){let o=Nc(e,r,t);return {signer:r,wallet:t,...o}}function ge(e){switch(e){case WalletType.EOA:return SignatureType.EOA;case WalletType.POLY_PROXY:return SignatureType.POLY_PROXY;case WalletType.GNOSIS_SAFE:return SignatureType.POLY_GNOSIS_SAFE;case WalletType.DEPOSIT_WALLET:return SignatureType.POLY_1271}}function Sr(e){let r=ge(e.walletType);return {maker:e.wallet,signatureType:r,signer:r===SignatureType.POLY_1271?e.wallet:e.signer}}function rr(e,r){return e.signerType==="OWNER"?r:bc(e.signer,r)}function bc(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),o=AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes"}],[t,Cc,r]);return expectSessionSignerSignature(`${o}${Ic.slice(2)}`)}var vc="3d3d606380380380913d393d73%s5af4602a57600080fd5b602d8060366000396000f3363d3d373d3d3d363d73%s5af43d82803e903d91602b57fd5bf352e831dd00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000";function qc(e){let r=vc.replace("%s",e.proxyFactory.slice(2).toLowerCase()).replace("%s",e.proxyImplementation.slice(2).toLowerCase());return expectHexString(Hash.keccak256(`0x${r}`))}function kc(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:qc(r),from:r.proxyFactory,salt:Hash.keccak256(AbiParameters.encodePacked(["address"],[e]))}))}function Ac(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:r.safeInitCodeHash,from:r.safeFactory,salt:Hash.keccak256(AbiParameters.encode([{name:"address",type:"address"}],[e]))}))}var Oc="0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3",wc="0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076",Lc=0x61003d3d8160233d3973n;function Hn(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),o=AbiParameters.encode([{type:"address"},{type:"bytes32"}],[r.depositWalletFactory,t]);return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:_c(r.depositWalletImplementation,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}var Fc="0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3",Mc="0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c",Bc="0x60195155f3363d3d373d3d363d602036600436635c60da",Uc=0x6100523d8160233d3973n,Dc="0x49493a4d";function Nn(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),o=AbiParameters.encode([{type:"address"},{type:"bytes32"}],[r.depositWalletFactory,t]);return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:zc(r.depositWalletBeacon,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}function _c(e,r){let t=BigInt((r.length-2)/2),o=Lc+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(o,{size:10}),Bytes.fromHex(e),Bytes.fromHex("0x6009"),Bytes.fromHex(wc),Bytes.fromHex(Oc),Bytes.fromHex(r)),{as:"Hex"}))}function zc(e,r){let t=BigInt((r.length-2)/2),o=Uc+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(o,{size:10}),Bytes.fromHex(e),Bytes.fromHex(Bc),Bytes.fromHex(Mc),Bytes.fromHex(Fc),Bytes.fromHex(r)),{as:"Hex"}))}async function Wc(e,r){try{let t=await e.ethCall({to:r,data:Dc});return Hc(t)}catch(t){if(Dn(t))return ZERO_ADDRESS;throw t}}async function jc(e,r){let t=await Wc(e,r);return !isSameEvmAddress(t,ZERO_ADDRESS)}async function Kn(e,r,t){return await jc(e,t.depositWalletFactory)?Nn(r,t):Hn(r,t)}function Hc(e){return e.length<66?ZERO_ADDRESS:expectEvmAddress(`0x${e.slice(-40)}`)}function Nc(e,r,t){if(isSameEvmAddress(t,r))return {signerType:"OWNER",walletType:WalletType.EOA};let o=e.walletDerivation;return isSameEvmAddress(t,Nn(r,o))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,Hn(r,o))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,Ac(r,o))?{signerType:"OWNER",walletType:WalletType.GNOSIS_SAFE}:isSameEvmAddress(t,kc(r,o))?{signerType:"OWNER",walletType:WalletType.POLY_PROXY}:{signerType:"SESSION_KEY",walletType:WalletType.DEPOSIT_WALLET}}var Gn=z.string().transform(e=>e);function X(e){return z.union([z.object({...e,assetId:Gn,tokenId:z.never().optional()}),z.object({...e,assetId:z.never().optional(),tokenId:z.string()})])}function Ce(e){return z.union([z.object({...e,assetId:Gn.optional(),tokenId:z.never().optional()}),z.object({...e,assetId:z.never().optional(),tokenId:z.string().optional()})])}function h(e,r){if(Gc(r))return $c(e,r.exceptions);let t=new URLSearchParams;for(let[o,n]of Object.entries(r)){let s=e[o];if(s!==void 0){if(_t(s)){for(let i of s)t.append(n,Ae(i));continue}t.append(n,Ae(s));}}return t}function T(e={}){return {format:"snake_case",exceptions:e}}function $n(e){let r=new URLSearchParams;for(let[t,o]of Object.entries(e))if(o!==void 0){if(Array.isArray(o)){r.append(t,o.map(Ae).join(","));continue}r.append(t,Ae(o));}return r}var _e=z.union([z.number().int().min(0),z.date()]).transform(e=>e instanceof Date?Math.floor(e.getTime()/1e3):e),tr=z.union([z.literal("full"),z.object({start:_e.optional(),end:_e.optional()}).refine(e=>!e.end||e.end>=(e.start??0),"end must not precede start")]).transform(e=>e==="full"?{start:1}:e),Dt=EventIdSchema.refine(e=>/^[1-9]\d*$/.test(e)&&BigInt(e)<=2147483647n,"Expected a positive 32-bit event ID");function ce(e,r){return z.array(e).min(1).transform(t=>[...new Map(t.map(o=>[o.toLowerCase(),o])).values()]).refine(t=>t.length<=r,`At most ${r} distinct ids`)}function U(e){let r=new URLSearchParams;for(let[t,o]of Object.entries(e)){if(o===void 0)continue;let n=Vn(t);if(_t(o)){r.append(n,o.map(Ae).join(","));continue}r.append(n,Ae(o));}return r}function Gc(e){return "format"in e}function $c(e,r){let t=new URLSearchParams;for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let s=r[o]??Vn(o);if(_t(n)){for(let i of n)t.append(s,Ae(i));continue}t.append(s,Ae(n));}return t}function _t(e){return Array.isArray(e)}function Vn(e){return e.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`)}function Ae(e){return String(e)}var Uh=o(h$1,g,n,c,b);async function Dh(e){return (await unwrap(e.secureClob.get("/auth/ban-status/closed-only").andThen(y(ClosedOnlyModeSchema)))).closedOnly}var id=z.object({cursor:PaginationCursorSchema.optional(),id:z.string().optional(),market:z.string().optional()}),pd=Ce(id.shape).default({}),_h=o(h$1,g,n,c,b,a);function zh(e,r){let t=l(r,pd),{cursor:o}=t;return x(n=>e.secureClob.get("/data/orders",{params:h({assetId:t.assetId??t.tokenId,id:t.id,market:t.market,nextCursor:n},T({assetId:"asset_id"}))}).andThen(y(OpenOrdersPageSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),o)}var cd=z.object({orderId:z.string()}),Wh=o(h$1,g,n,c,b,a);async function jh(e,r){let t=l(r,cd);return unwrap(e.secureClob.get(`/data/order/${t.orderId}`).andThen(y(OpenOrderSchema)))}var dd={after:z.string().optional(),before:z.string().optional(),cursor:PaginationCursorSchema.optional(),id:z.string().optional(),makerAddress:z.string().optional(),market:z.string().optional()},ud=Ce(dd).default({}),Hh=o(h$1,g,n,c,b,a);function Yn(e,r){let t=l(r,ud),{cursor:o}=t;return x(n=>e.secureClob.get("/data/trades",{params:h({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,id:t.id,makerAddress:t.makerAddress,market:t.market,nextCursor:n},T({assetId:"asset_id"}))}).andThen(y(ClobTradesPageSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),o)}var Nh=o(h$1,g,n,c,b),ld=z.object({ids:z.array(z.string()).min(1)});async function Kh(e){let r=ge(e.account.walletType);return unwrap(e.secureClob.get("/notifications",{params:h({signatureType:r},T())}).andThen(y(NotificationsResponseSchema)))}var Gh=o(h$1,g,n,c,b,a);async function $h(e,r){let t=l(r,ld),o=ge(e.account.walletType),n=h({ids:t.ids.join(","),signatureType:o},T());await unwrap(e.secureClob.del("/notifications",{params:n}));}var Qn=z.object({assetType:AssetTypeSchema}),md=Ce(Qn.shape),Vh=o(h$1,g,n,c,b,a);async function zt(e,r){let t=l(r,md),o=ge(e.account.walletType);return unwrap(e.secureClob.get("/balance-allowance",{params:h({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:o},T())}).andThen(y(BalanceAllowanceResponseSchema)))}var fd=Ce(Qn.shape),Yh=o(h$1,g,n,c,b,a);async function Zn(e,r){let t=l(r,fd),o=ge(e.account.walletType),n=h({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:o},T());return await unwrap(e.secureClob.get("/balance-allowance/update",{params:n})),zt(e,t)}var yd=z.object({orderId:z.string()}),Qh=o(h$1,g,n,c,b,a);async function Zh(e,r){let t=l(r,yd);return (await unwrap(e.secureClob.get("/order-scoring",{params:h(t,T())}).andThen(y(OrderScoringResponseSchema)))).scoring}var Pd=z.object({orderIds:z.array(z.string())}),Jh=o(h$1,g,n,c,b,a);async function Xh(e,r){let o=l(r,Pd).orderIds;return unwrap(e.secureClob.post("/orders-scoring",{json:o}).andThen(y(OrdersScoringResponseSchema)))}var Jn=z.object({cursor:PaginationCursorSchema.optional(),date:z.string()}),eT=o(h$1,g,n,c,b,a);function rT(e,r){let{cursor:t,...o}=l(r,Jn),n=ge(e.account.walletType);return x(s=>e.secureClob.get("/rewards/user",{params:h({...o,nextCursor:s,signatureType:n},T())}).andThen(y(UserEarningsPageSchema)).map(i=>({items:i.data,hasMore:i.nextCursor!==END_CURSOR,nextCursor:i.nextCursor===END_CURSOR?void 0:toPaginationCursor(i.nextCursor)})),t)}var tT=o(h$1,g,n,c,b,a);async function oT(e,r){let t=l(r,Jn),o=ge(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/total",{params:h({...t,signatureType:o},T())}).andThen(y(TotalUserEarningsResponseSchema)))}var gd=z.object({cursor:PaginationCursorSchema.optional(),date:z.string(),noCompetition:z.boolean().optional(),orderBy:z.string().optional(),pageSize:k.max(500).default(100),position:z.string().optional()}),nT=o(h$1,g,n,c,b,a);function sT(e,r){let{cursor:t,...o}=l(r,gd),n=ge(e.account.walletType);return x(s=>e.secureClob.get("/rewards/user/markets",{params:h({...o,nextCursor:s,signatureType:n},T())}).andThen(y(UserRewardsEarningsPageSchema)).map(i=>({items:i.data,hasMore:i.nextCursor!==END_CURSOR,nextCursor:i.nextCursor===END_CURSOR?void 0:toPaginationCursor(i.nextCursor)})),t)}var aT=o(h$1,g,n,c,b);async function iT(e){let r=ge(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/percentages",{params:h({signatureType:r},T())}).andThen(y(RewardsPercentagesSchema)))}function D(e,r={}){let{retries:t=2,maxDelaySeconds:o=5,sleep:n=delay}=r;function s(i){return e().orElse(f=>{if(!(f instanceof h$1)||i<=0)return errAsync(f);let P=f.retryAfter??1;return P>o?errAsync(f):ResultAsync.fromSafePromise(n(P*1e3).catch(()=>{})).andThen(()=>s(i-1))})}return s(t)}var bd=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),user:EvmAddressSchema.optional(),takerOnly:z.boolean().optional(),filterType:TradeFilterTypeSchema.optional(),filterAmount:z.number().min(0).optional(),conditionId:z.union([ConditionIdSchema,ce(ConditionIdSchema,20)]).optional(),eventId:z.array(EventIdSchema).min(1).optional(),side:OrderSideSchema.optional(),window:tr.optional()}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}),hT=o(h$1,g,c,b,a);function TT(e,r={}){let{cursor:t,pageSize:o,window:n,...s}=l(r,bd);return x(i=>D(()=>e.data.get("/v2/trades",{params:U({...s,...n,limit:o,cursor:i})})).andThen(y(ListTradesResponseSchema)),t)}var vd=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),user:EvmAddressSchema,conditionId:z.union([ConditionIdSchema,ce(ConditionIdSchema,20)]).optional(),eventId:z.array(EventIdSchema).min(1).optional(),type:z.array(ActivityTypeSchema).min(1).optional(),side:OrderSideSchema.optional(),sortDirection:SortDirectionSchema.optional(),window:tr.optional()}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}),xT=o(h$1,g,c,b,a);function CT(e,r){let{cursor:t,pageSize:o,window:n,...s}=l(r,vd);return x(i=>D(()=>e.data.get("/v2/activity",{params:U({...s,...n,excludeDepositsWithdrawals:false,limit:o,cursor:i})})).andThen(y(ListActivityResponseSchema)),t)}var qd=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),user:EvmAddressSchema,conditionId:z.union([ComboConditionIdSchema,ce(ComboConditionIdSchema,20)]).optional()}),IT=o(h$1,g,c,b,a);function bT(e,r){let{cursor:t,pageSize:o,...n}=l(r,qd);return x(s=>D(()=>e.data.get("/v2/activity/combos",{params:U({...n,limit:o,cursor:s})})).andThen(y(ListComboActivityResponseSchema)),t)}var Ad=64,Od=/^0x[0-9a-fA-F]{62}$/,wd=/^0x[0-9a-fA-F]{64}$/,Ht="0x0000000000000000000000000000000000000000000000000000000000000000",Ld=AbiFunction.from("function approve(address spender, uint256 amount)"),ns=AbiFunction.from("function allowance(address owner, address spender) view returns (uint256)"),Fd=AbiFunction.from("function transfer(address recipient, uint256 amount)"),Md=AbiFunction.from("function authorizeSessionSigner(address sessionSigner, uint256 validUntil)"),Bd=AbiFunction.from("function revokeSessionSigner(address sessionSigner)"),Ud=AbiFunction.from("function deposit(address token, uint256 amount, address to)"),Dd=AbiFunction.from("function setApprovalForAll(address operator, bool approved)"),ss=AbiFunction.from("function isApprovedForAll(address account, address operator) view returns (bool)"),as=AbiFunction.from("function balanceOf(address account, uint256 id) view returns (uint256)"),is=AbiFunction.from("function balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])"),_d=AbiFunction.from("function splitPosition(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),zd=AbiFunction.from("function mergePositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),Wd=AbiFunction.from("function redeemPositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] indexSets)"),jd=AbiFunction.from("function split(bytes31 conditionId, uint256 amount)"),Hd=AbiFunction.from("function merge(bytes31 conditionId, uint256 amount)"),Nd=AbiFunction.from("function redeem(bytes31 conditionId, uint256 outcomeIndex, uint256 amount)"),Kd=AbiFunction.from("function prepareCondition(uint256[] legs) returns (bytes31)"),Gd=AbiFunction.from("function multiSend(bytes)"),$d=AbiFunction.from("function proxy((uint8 typeCode, address to, uint256 value, bytes data)[] calls) returns (bytes[])"),ps=[1n,2n],Vd=[1n,2n],ee=(1n<<256n)-1n,BT=o(a);function Gr(e,r,t){if(t<0n)throw new a("Approval amount must be non-negative");if(t>ee)throw new a("Approval amount exceeds uint256 range");return {data:Yd(r,t),to:e}}function cs(e,r,t){return {data:AbiFunction.encodeData(ns,[r,t]),to:e}}function ds(e){return AbiFunction.decodeResult(ns,e)}function $r(e,r,t){return {data:Qd(r,t),to:e}}function us(e,r,t){return {data:AbiFunction.encodeData(ss,[r,t]),to:e}}function ls(e){return AbiFunction.decodeResult(ss,e)}function ms(e,r,t){return {data:AbiFunction.encodeData(as,[r,Ee(BigInt(t),"Position ID")]),to:e}}function fs(e){return AbiFunction.decodeResult(as,e)}function Vr(e,r,t){return {data:AbiFunction.encodeData(is,[t.map(()=>r),t.map(o=>Ee(BigInt(o),"id"))]),to:e}}function Yr(e){return AbiFunction.decodeResult(is,e)}var UT=o(a);function Nt(e,r,t){if(t<0n)throw new a("Transfer amount must be non-negative");if(t>ee)throw new a("Transfer amount exceeds uint256 range");return {data:Zd(r,t),to:e}}function ys(e,r,t){return {data:AbiFunction.encodeData(Md,[r,Ee(t,"Session key expiry")]),to:e}}function Ps(e,r){return {data:AbiFunction.encodeData(Bd,[r]),to:e}}var DT=o(a);function gs(e,r,t,o){if(t<=0n)throw new a("Perps deposit amount must be positive");return {data:AbiFunction.encodeData(Ud,[r,Ee(t,"Perps deposit amount"),o]),to:e}}var _T=o(a);function Rs(e,r,t,o){return {data:Jd(r,t,o),to:e}}var zT=o(a);function Es(e,r,t,o){return {data:Xd(r,t,o),to:e}}var WT=o(a);function Ss(e,r,t){return {data:eu(r,t),to:e}}var jT=o(a);function Kt(e,r,t){return {data:AbiFunction.encodeData(jd,[Vt(r),Ee(t,"Split amount")]),to:e}}var HT=o(a);function Gt(e,r,t){return {data:AbiFunction.encodeData(Hd,[Vt(r),Ee(t,"Merge amount")]),to:e}}var NT=o(a);function Qr(e,r,t,o){return {data:AbiFunction.encodeData(Nd,[Vt(r),BigInt(ru(t)),Ee(o,"Redeem amount")]),to:e}}var KT=o(a);function $t(e,r){return {data:AbiFunction.encodeData(Kd,[r.map(t=>Ee(t,"Leg position ID"))]),to:e}}function Yd(e,r){return invariant(r>=0n,"Approval amount must be non-negative"),AbiFunction.encodeData(Ld,[e,r])}function Qd(e,r){return AbiFunction.encodeData(Dd,[e,r])}function Zd(e,r){return AbiFunction.encodeData(Fd,[e,r])}function Jd(e,r,t){return AbiFunction.encodeData(_d,[e,Ht,r,ps,Ee(t,"Split amount")])}function Xd(e,r,t){return AbiFunction.encodeData(zd,[e,Ht,r,ps,Ee(t,"Merge amount")])}function eu(e,r){return AbiFunction.encodeData(Wd,[e,Ht,r,Vd])}function Ee(e,r){if(e<0n)throw new a(`${r} must be non-negative`);if(e>ee)throw new a(`${r} exceeds uint256 range`);return e}function Vt(e){if(Od.test(e))return e.toLowerCase();if(wd.test(e)){let r=e.toLowerCase();if(r.endsWith("00")||r.endsWith("01"))return r.slice(0,Ad)}throw new a("Protocol v2 condition ID must be bytes31, or bytes32 with a binary outcome byte")}function ru(e){if(e!==0&&e!==1)throw new a("Protocol v2 outcome index must be 0 or 1");return e}function hs(e){return AbiFunction.encodeData($d,[e.map(r=>({typeCode:1,to:r.to,value:r.value??0n,data:r.data}))])}function Ts(e){let r=e.map(t=>tu(t));return AbiFunction.encodeData(Gd,[r.length===0?"0x":AbiParameters.encodePacked(Array.from({length:r.length},()=>"bytes"),r)])}function tu(e){let r=e.value??0n;return AbiParameters.encodePacked(["uint8","address","uint256","uint256","bytes"],[0,e.to,r,BigInt((e.data.length-2)/2),e.data])}var YT=o(h$1,g,i,j,c,b,a);function N(e,r="Expected a TransactionHandle"){return invariant(typeof e=="object"&&e!==null&&"transactionHash"in e&&"transactionId"in e&&"wait"in e&&typeof e.wait=="function",r),e}o(k$1,n);o(k$1,n);function ex(e){return async function(t){let o=await t.next();for(;!o.done;)try{switch(o.value.kind){case "requestAddress":o=await t.next(await e.getAddress());break;case "signAuthMessage":o=await t.next(await e.signTypedData(o.value.payload));break}}catch(n){o=await t.throw(n);}return o.value}}function _(e){return async function(t){let o=await t.next();for(;!o.done;)try{switch(o.value.kind){case "requestAddress":o=await t.next(await e.getAddress());break;case "signGaslessTypedData":case "signOrder":o=await t.next(await e.signTypedData(o.value.payload));break;case "signGaslessMessage":o=await t.next(await e.signMessage(o.value.payload));break;case "sendErc20ApprovalTransaction":case "sendErc1155ApprovalForAllTransaction":case "sendErc20TransferTransaction":case "sendPerpsDepositTransaction":case "sendMergePositionsTransaction":case "sendRedeemPositionsTransaction":case "sendSplitPositionTransaction":o=await t.next(await e.sendTransaction(o.value.request));break}}catch(n){o=await t.throw(n);}return o.value}}function xs(){return {kind:"requestAddress"}}function K(e,r){return {chainId:e,...r}}var yu=[{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Pu=[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"operation",type:"uint8"},{name:"safeTxGas",type:"uint256"},{name:"baseGas",type:"uint256"},{name:"gasPrice",type:"uint256"},{name:"gasToken",type:"address"},{name:"refundReceiver",type:"address"},{name:"nonce",type:"uint256"}],gu="DepositWallet",Ru="1",Eu=600,Su=[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],hu=[{name:"wallet",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"calls",type:"Call[]"}],Tu=z.object({address:z.string(),type:z.enum(RelayerTransactionType)}),yx=o(h$1,g,c,b,a);async function Zt(e,r){let t=l(r,Tu);return unwrap(e.relayer.get("/v1/account/transactions/params",{params:h(t,{address:"address",type:"type"})}).andThen(y(RelayerExecuteParamsSchema)))}var xu=z.object({transactionId:TransactionIdSchema}),Cu=z.object({wallet:EvmAddressSchema,type:z.enum(WalletType)}),Px=o(h$1,g,c,b,a);async function gx(e,r){let t=await Iu(e,r);return t.type===WalletType.EOA?false:unwrap(e.relayer.get("/deployed",{params:h({address:t.wallet,type:t.type===WalletType.DEPOSIT_WALLET?RelayerTransactionType.WALLET:void 0},{address:"address",type:"type"})}).andThen(y(RelayerDeployedResponseSchema)).map(({deployed:o})=>o))}async function Iu(e,r){if(r!==void 0)return l(r,Cu);if(!e.isSecureClient())throw new a("Gasless readiness inference requires a secure client. Pass a wallet and type when using a public client.");return e.account.walletType!==WalletType.EOA?{wallet:e.account.wallet,type:e.account.walletType}:{wallet:await Kn(e.rpc,e.account.signer,e.environment.walletDerivation),type:WalletType.DEPOSIT_WALLET}}var $=z.string().max(500),Cs=10,Rx=o(h$1,g,c,b,a);async function Ex(e){return invariant(e.supportsGasless,"Deposit Wallet deployment requires a Relayer API Key or Builder API Key in the client configuration."),hr(e,{from:e.account.signer,metadata:"Deploy Deposit Wallet",to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET_CREATE})}async function bu(e,r){let t=l(r,xu);return unwrap(e.relayer.get(`/v1/account/transactions/${t.transactionId}`).andThen(y(GaslessTransactionSchema)))}var vu=z.object({data:z.custom(isHexString),to:EvmAddressSchema,value:z.bigint().optional()}),qu=z.object({calls:z.array(vu).min(1).transform(e=>expectNonEmptyArray(e)),metadata:$}),Sx=o(h$1,g,c,b,a);async function V(e,r){let t=l(r,qu);return invariant(e.supportsGasless,"Gasless transactions require a Relayer API Key or Builder API Key in the client configuration."),invariant(e.account.walletType===WalletType.GNOSIS_SAFE||e.account.walletType===WalletType.POLY_PROXY||e.account.walletType===WalletType.DEPOSIT_WALLET,"Gasless transaction preparation supports Deposit Wallet, Safe-backed, and proxy-backed accounts"),async function*(){let o=expectEvmAddress(yield xs());invariant(o===e.account.signer,"Wallet client address does not match the authenticated signer");for(let n=0;n<=Cs;n+=1)try{switch(e.account.walletType){case WalletType.POLY_PROXY:return yield*ku(e,t);case WalletType.DEPOSIT_WALLET:return yield*Au(e,t);case WalletType.GNOSIS_SAFE:return yield*Ou(e,t)}invariant(!1,"Unsupported wallet type for gasless transaction");}catch(s){if(!to(s)||n===Cs)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected gasless transaction retry loop to return");}.call(null)}async function*ku(e,r){let t=yield*Jt(e,r.calls,r.metadata);return hr(e,t)}async function*Jt(e,r,t){let o=await Zt(e,{address:e.account.signer,type:RelayerTransactionType.PROXY}),n=e.environment.walletDerivation.proxyFactory,s=hs(r),i="0",f="0",P=(await e.rpc.ethEstimateGas({data:s,from:e.account.signer,to:n})).toString(),C=e.environment.contracts.relayHub,I=o.address,z=Mu(e.account.signer,n,s,i,f,P,o.nonce,C,I),M=expectEvmSignature(yield ks(z));return {data:s,from:e.account.signer,...t!==void 0&&{metadata:t},nonce:o.nonce,proxyWallet:e.account.wallet,signature:M,signatureParams:{gasLimit:P,gasPrice:f,relay:I,relayHub:C,relayerFee:i},to:n,type:RelayerTransactionType.PROXY}}function Xt(e){return !(e instanceof g)||e.status!==400?void 0:/batch nonce\s+\d+\s+does not match on-chain nonce\s+(\d+)/i.exec(e.message)?.[1]}async function*Au(e,r){let t=yield*nr(e,r.calls,r.metadata);try{return await hr(e,t)}catch(o){let n=Xt(o);if(n===void 0)throw o;let s=yield*eo(e,t,r.calls,n);return hr(e,s)}}async function*nr(e,r,t){let o=await Zt(e,{address:e.account.signer,type:RelayerTransactionType.WALLET}),n=r.map(vs),s=`${Math.floor(Date.now()/1e3)+Eu}`,i=rr(e.account,expectEvmSignature(yield As(qs({calls:n,chainId:e.environment.chainId,deadline:s,nonce:o.nonce,wallet:e.account.wallet}))));return {depositWalletParams:{calls:n,deadline:s,depositWallet:e.account.wallet},from:e.account.signer,...t!==void 0&&{metadata:t},nonce:o.nonce,signature:i,to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET}}async function*eo(e,r,t,o){let n=rr(e.account,expectEvmSignature(yield As(qs({calls:t.map(vs),chainId:e.environment.chainId,deadline:r.depositWalletParams.deadline,nonce:o,wallet:e.account.wallet}))));return {...r,nonce:o,signature:n}}async function*Ou(e,r){let t=yield*ro(e,r.calls,r.metadata);return hr(e,t)}async function*ro(e,r,t){let o=await Zt(e,{address:e.account.signer,type:RelayerTransactionType.SAFE}),n=wu(r,e.environment.contracts.safeMultisend),s=Fu({chainId:e.environment.chainId,data:n.data,nonce:o.nonce,operation:n.operation,safeAddress:e.account.wallet,to:n.to,value:n.value}),i=expectEvmSignature(yield ks(expectHexString(TypedData.getSignPayload(s))));return {data:n.data,from:e.account.signer,...t!==void 0&&{metadata:t},nonce:o.nonce,proxyWallet:e.account.wallet,signature:Bu(i),signatureParams:Lu(n.operation),to:n.to,type:RelayerTransactionType.SAFE,value:n.value>0n?`${n.value}`:void 0}}async function hr(e,r){let t=l(r,RelayerExecuteRequestSchema),o=await unwrap(e.relayer.post("/submit",{json:t}).andThen(y(RelayerExecuteResponseSchema)));return new ze(e,o)}function to(e){if(e instanceof h$1)return true;if(!(e instanceof g)||e.status!==400)return false;if(/wallet busy/i.test(e.message)&&/active action/i.test(e.message)||/wallet has in-flight action/i.test(e.message))return true;let r=/batch nonce\s+(\d+)\s+does not match on-chain nonce\s+(\d+)/i.exec(e.message);if(r===null)return false;let t=r[1],o=r[2];return t===void 0||o===void 0?false:BigInt(t)<BigInt(o)}function vs(e){return {data:e.data,target:e.to,value:`${e.value??0n}`}}function qs(e){return {domain:{chainId:e.chainId,name:gu,verifyingContract:e.wallet,version:Ru},message:{calls:e.calls.map(r=>({data:r.data,target:r.target,value:BigInt(r.value)})),deadline:BigInt(e.deadline),nonce:BigInt(e.nonce),wallet:e.wallet},primaryType:"Batch",types:{Batch:hu,Call:Su}}}function wu(e,r){if(e.length===1){let[t]=e;return {data:t.data,operation:0,to:t.to,value:t.value??0n}}return {data:Ts(e),operation:1,to:r,value:0n}}function Lu(e){return {baseGas:"0",gasPrice:"0",gasToken:ZERO_ADDRESS,operation:`${e}`,refundReceiver:ZERO_ADDRESS,safeTxnGas:"0"}}function Fu(e){return {domain:{chainId:e.chainId,verifyingContract:e.safeAddress},message:{baseGas:0n,data:e.data,gasPrice:0n,gasToken:ZERO_ADDRESS,nonce:BigInt(e.nonce),operation:e.operation,refundReceiver:ZERO_ADDRESS,safeTxGas:0n,to:e.to,value:e.value},primaryType:"SafeTx",types:{EIP712Domain:yu,SafeTx:Pu}}}function ks(e){return {kind:"signGaslessMessage",payload:e}}function As(e){return {kind:"signGaslessTypedData",payload:e}}function Mu(e,r,t,o,n,s,i,f,P){return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromString("rlx:"),Bytes.fromHex(e),Bytes.fromHex(r),Bytes.fromHex(t),Bytes.fromNumber(BigInt(o),{size:32}),Bytes.fromNumber(BigInt(n),{size:32}),Bytes.fromNumber(BigInt(s),{size:32}),Bytes.fromNumber(BigInt(i),{size:32}),Bytes.fromHex(f),Bytes.fromHex(P)),{as:"Hex"}))}function Bu(e){let r=e.slice(2),t=Number.parseInt(r.slice(128,130),16),o=t===0||t===1?t+31:t===27||t===28?t+4:t;return expectHexString(`0x${r.slice(0,128)}${o.toString(16).padStart(2,"0")}`)}var hx=o(h$1,g,c,b,a,i,j),ze=class{#e;transactionHash;transactionId;constructor(r,t){this.#e=r,this.transactionHash=t.transactionHash,this.transactionId=t.transactionId;}async wait(){let r=0;for(;r<this.#e.environment.relayerMaxPolls;){let t=await bu(this.#e,{transactionId:this.transactionId});if(t.state===RelayerTransactionState.STATE_CONFIRMED){let o=t.transactionHash??this.transactionHash;if(o===null)throw new b("Expected submitted transaction to have a transaction hash once settled");return {transactionHash:o,transactionId:t.transactionId}}if(t.state===RelayerTransactionState.STATE_FAILED||t.state===RelayerTransactionState.STATE_INVALID)throw new j(t.errorMsg??`Transaction ${t.transactionId} reached terminal state ${t.state}`);r+=1,await delay(this.#e.environment.relayerPollFrequencyMs);}throw new i(`Timed out waiting for transaction ${this.transactionId} to settle`)}};var Uu=z.object({amount:z.union([z.bigint(),z.literal("max")]),metadata:$.optional(),spenderAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),wx=o(a);async function Du(e,r){let t=l(r,Uu),o=t.amount==="max"?ee:t.amount;return async function*(){return e.account.walletType===WalletType.EOA?N(yield Fs(K(e.environment.chainId,Gr(t.tokenAddress,t.spenderAddress,o)))):yield*await V(e,{calls:[Gr(t.tokenAddress,t.spenderAddress,o)],metadata:t.metadata??`Approve ${t.amount} of ${t.tokenAddress} to ${t.spenderAddress}`})}.call(null)}var Lx=o(k$1,h$1,g,n,c,b,a);function Os(e,r){return Du(e,r).then(_(e.signer))}var _u=z.object({approved:z.boolean().default(true),metadata:$.optional(),operatorAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),Fx=o(a);async function zu(e,r){let t=l(r,_u);return async function*(){return e.account.walletType===WalletType.EOA?N(yield Ms(K(e.environment.chainId,$r(t.tokenAddress,t.operatorAddress,t.approved)))):yield*await V(e,{calls:[$r(t.tokenAddress,t.operatorAddress,t.approved)],metadata:t.metadata??`${t.approved?"Approve":"Revoke"} ${t.operatorAddress} on ${t.tokenAddress}`})}.call(null)}var Mx=o(k$1,h$1,g,n,c,b,a);function ws(e,r){return zu(e,r).then(_(e.signer))}var Bx=o(g,c,b,a),Wu=z.object({user:EvmAddressSchema}),Ux=o(g,c,b,a);async function Dx(e,r){let{user:t}=l(r,Wu),o=await Ls(e,t);return {isFullyApproved:o.erc20.length===0&&o.erc1155.length===0,missing:o}}async function ju(e){let r=await Ls(e,e.account.wallet),t=r.erc20.map(n=>Gr(n.tokenAddress,n.spenderAddress,n.amount)),o=r.erc1155.map(n=>$r(n.tokenAddress,n.operatorAddress,true));return async function*(){if(t.length===0&&o.length===0)return;if(e.account.walletType===WalletType.EOA){for(let s of t)await N(yield Fs(K(e.environment.chainId,s))).wait();for(let s of o)await N(yield Ms(K(e.environment.chainId,s))).wait();return}await(yield*await V(e,{calls:[...t,...o],metadata:"Trading setup approvals"})).wait();}.call(null)}var _x=o(k$1,h$1,g,n,i,j,c,b,a);function zx(e){return ju(e).then(_(e.signer)).then(()=>{})}async function Ls(e,r){let t=Hu(e),o=[...t.erc20.map(f=>cs(f.tokenAddress,r,f.spenderAddress)),...t.erc1155.map(f=>us(f.tokenAddress,r,f.operatorAddress))],n=await e.rpc.ethCallBatch(o),s=n.slice(0,t.erc20.length),i=n.slice(t.erc20.length);try{return {erc20:t.erc20.filter((f,P)=>ds(s[P])<f.amount),erc1155:t.erc1155.filter((f,P)=>!ls(i[P]))}}catch(f){throw new b("Expected JSON-RPC approval checks to return ABI-encoded values",{cause:f})}}function Hu(e){let{contracts:r}=e.environment;return {erc20:[{amount:ee,spenderAddress:r.standardExchange,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.negRiskExchange,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.collateralAdapter,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.negRiskCollateralAdapter,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.protocolV2Router,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.exchangeV3,tokenAddress:r.collateralToken},{amount:ee,spenderAddress:r.perpsDepositContract,tokenAddress:r.collateralToken}],erc1155:[{operatorAddress:r.standardExchange,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskExchange,tokenAddress:r.conditionalTokens},{operatorAddress:r.collateralAdapter,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskCollateralAdapter,tokenAddress:r.conditionalTokens},{operatorAddress:r.autoRedeemOperator,tokenAddress:r.conditionalTokens},{operatorAddress:r.binaryModule,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskModule,tokenAddress:r.conditionalTokens},{operatorAddress:r.protocolV2Router,tokenAddress:r.positionManager},{operatorAddress:r.exchangeV3,tokenAddress:r.positionManager},{operatorAddress:r.autoRedeemOperator,tokenAddress:r.positionManager}]}}function Fs(e){return {kind:"sendErc20ApprovalTransaction",request:e}}function Ms(e){return {kind:"sendErc1155ApprovalForAllTransaction",request:e}}var $x=o(h$1,g,c,b);async function $u(e,r){return unwrap(e.clob.post("/auth/api-key",{headers:Ds(r)}).andThen(y(ApiKeyCredsSchema)))}var Vx=o(h$1,g,c,b);async function Vu(e,r){return unwrap(e.clob.get("/auth/derive-api-key",{headers:Ds(r)}).andThen(y(ApiKeyCredsSchema)))}var Yx=o(h$1,g,c,b);async function Qx(e,r){try{return await $u(e,r)}catch(t){if(!(t instanceof g)||t.status!==400)throw t}return Vu(e,r)}var Zx=o(h$1,g,n,c,b);async function Jx(e){return (await unwrap(e.secureClob.get("/auth/api-keys").andThen(y(ApiKeysResponseSchema)))).apiKeys}var Xx=o(h$1,g,n,c,b);async function eC(e){await unwrap(e.secureClob.del("/auth/api-key").andThen(y(z.literal("OK"))));}var rC=o(h$1,g,n,c,b);async function tC(e){return unwrap(e.secureClob.post("/auth/builder-api-key").andThen(y(BuilderApiKeyCredsSchema)))}var oC=o(h$1,g,n,c,b);async function nC(e){return unwrap(e.secureClob.get("/auth/builder-api-key").andThen(y(BuilderApiKeysResponseSchema)))}var sC=o(h$1,g,n,c,b);async function aC(e){await unwrap(e.clob.del("/auth/builder-api-key").andThen(y(z.literal("OK"))));}function Ds(e){return {POLY_ADDRESS:e.address,POLY_NONCE:`${e.nonce}`,POLY_SIGNATURE:e.signature,POLY_TIMESTAMP:`${e.timestamp}`}}var Xu=z.object({after:z.string().optional(),before:z.string().optional(),builderCode:BuilderCodeSchema,cursor:PaginationCursorSchema.optional(),id:z.string().optional(),market:z.string().optional()}),el=Ce(Xu.shape),gC=o(h$1,g,c,b,a);function RC(e,r){let t=l(r,el),{cursor:o}=t;return x(n=>e.clob.get("/builder/trades",{params:h({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,builderCode:t.builderCode,id:t.id,market:t.market,nextCursor:n},T({assetId:"asset_id",builderCode:"builder_code"}))}).andThen(y(PaginatedBuilderTradesSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),o)}var El=X({}),AC=o(h$1,g,c,b,a);async function OC(e,r){let t=l(r,El);return (await unwrap(e.clob.get("/midpoint",{params:He(t)}).andThen(y(MidpointSchema)))).mid}var Sl=z.array(X({})).min(1),wC=o(h$1,g,c,b,a);async function LC(e,r){let t=l(r,Sl);return unwrap(e.clob.post("midpoints",{json:tt(t)}).andThen(y(MidpointsSchema)))}var hl=X({}),FC=o(h$1,g,c,b,a);async function MC(e,r){let t=l(r,hl);return (await unwrap(e.clob.get("/tick-size",{params:He(t)}).andThen(y(FetchTickSizeResponseSchema)))).minimumTickSize}var Tl=X({}),BC=o(h$1,g,c,b,a);async function UC(e,r){let t=l(r,Tl);return (await unwrap(e.clob.get("/neg-risk",{params:He(t)}).andThen(y(FetchNegRiskResponseSchema)))).negRisk}var xl=X({}),DC=o(h$1,g,c,b,a);async function Ns(e,r){let t=l(r,xl);return unwrap(e.clob.get(`/markets-by-token/${t.assetId??t.tokenId}`).andThen(y(ResolveConditionByTokenResponseSchema)))}var Cl=z.object({conditionId:ConditionIdSchema}),_C=o(h$1,g,c,b,a);async function Ks(e,r){let t=l(r,Cl);return unwrap(e.clob.get(`/clob-markets/${t.conditionId}`).andThen(y(FetchMarketInfoResponseSchema)))}var Il=z.object({builderCode:BuilderCodeSchema}),zC=o(h$1,g,c,b,a);async function Gs(e,r){let t=l(r,Il);return unwrap(e.clob.get(`/fees/builder-fees/${t.builderCode}`).andThen(y(FetchBuilderFeeRatesResponseSchema)).mapErr(o=>o instanceof g&&o.status===404?new a(`Unknown builder code: ${t.builderCode}`,{cause:o}):o))}var bl=X({side:OrderSideSchema}),WC=o(h$1,g,c,b,a);async function jC(e,r){let t=l(r,bl);return (await unwrap(e.clob.get("/price",{params:He(t)}).andThen(y(PriceSchema)))).price}var vl=z.array(X({side:OrderSideSchema})).min(1),HC=o(h$1,g,c,b,a);async function NC(e,r){let t=l(r,vl);return unwrap(e.clob.post("prices",{json:Bl(t)}).andThen(y(PricesSchema)))}var ql=X({}),KC=o(h$1,g,c,b,a);async function rt(e,r){let t=l(r,ql);return unwrap(e.clob.get("/book",{params:He(t)}).andThen(y(FetchOrderBookResponseSchema)))}var kl=z.array(X({})).min(1),GC=o(h$1,g,c,b,a);async function $C(e,r){let t=l(r,kl);return unwrap(e.clob.post("books",{json:tt(t)}).andThen(y(OrderBooksSchema)))}var Al=X({}),VC=o(h$1,g,c,b,a);async function YC(e,r){let t=l(r,Al);return (await unwrap(e.clob.get("/spread",{params:He(t)}).andThen(y(SpreadSchema)))).spread}var Ol=z.array(X({})).min(1),QC=o(h$1,g,c,b,a);async function ZC(e,r){let t=l(r,Ol);return unwrap(e.clob.post("spreads",{json:tt(t)}).andThen(y(SpreadsSchema)))}var wl=X({}),JC=o(h$1,g,c,b,a);async function XC(e,r){let t=l(r,wl);return unwrap(e.clob.get("/last-trade-price",{params:He(t)}).andThen(y(LastTradePriceSchema)))}var Ll=z.array(X({})).min(1),eI=o(h$1,g,c,b,a);async function rI(e,r){let t=l(r,Ll);return unwrap(e.clob.post("last-trades-prices",{json:tt(t)}).andThen(y(LastTradePricesSchema)))}var Fl=z.object({cursor:PaginationCursorSchema.optional(),sponsored:z.boolean().optional()}).default({}),tI=o(h$1,g,c,b,a);function oI(e,r={}){let{cursor:t,...o}=l(r,Fl);return x(n=>e.clob.get("/rewards/markets/current",{params:h({...o,nextCursor:n},T())}).andThen(y(PaginatedCurrentRewardsSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),t)}var Ml=z.object({conditionId:ConditionIdSchema,cursor:PaginationCursorSchema.optional(),sponsored:z.boolean().optional()}),nI=o(h$1,g,c,b,a);function sI(e,r){let{cursor:t,...o}=l(r,Ml);return x(n=>e.clob.get(`rewards/markets/${o.conditionId}`,{params:h({nextCursor:n,sponsored:o.sponsored},T())}).andThen(y(PaginatedMarketRewardsSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),t)}function tt(e){return e.map(r=>({token_id:r.assetId??r.tokenId}))}function Bl(e){return e.map(r=>({token_id:r.assetId??r.tokenId,side:r.side}))}function He(e){let{assetId:r,tokenId:t,...o}=e;return h({...o,tokenId:e.assetId??e.tokenId},T())}var Qs=2*6e4,gI=o(h$1,g,c,b);async function RI(e){return Zs(e),unwrap(e.combos.post("/v1/collateral-return/plan",{json:{wallet:e.account.wallet},timeout:Qs}).andThen(y(CollateralReturnPlanResponseSchema)))}var Nl=z.object({plan:CollateralReturnPlanSchema}),$s=10,no="Collateral return",EI=o(g,c,b,a);async function Kl(e,r){let{plan:t}=l(r,Nl);if(invariant(e.supportsGasless,"Collateral return execution requires a Relayer API Key or Builder API Key in the client configuration."),Zs(e),!isSameEvmAddress(t.wallet,e.account.wallet))throw new a("The collateral return plan was created for a different wallet than the authenticated account.");if(t.chainId!==e.environment.chainId)throw new a(`The collateral return plan was created for chain ${t.chainId}, but the client is configured for chain ${e.environment.chainId}.`);return async function*(){let o=[{data:t.routerCall.data,to:t.routerCall.to,value:0n}];for(let n=0;n<=$s;n+=1)try{let s=yield*Gl(e,o);try{return await Vs(e,t.planHash,s)}catch(i){let f=Xt(i);if(f===void 0||s.type!==RelayerTransactionType.WALLET)throw i;let P=yield*eo(e,s,o,f);return await Vs(e,t.planHash,P)}}catch(s){if(!to(s)||n===$s)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected collateral return submit retry loop to return");}.call(null)}var SI=o(k$1,h$1,g,n,c,b,a);function hI(e,r){return Kl(e,r).then(_(e.signer))}function Zs(e){invariant(e.account.walletType===WalletType.DEPOSIT_WALLET||e.account.walletType===WalletType.GNOSIS_SAFE||e.account.walletType===WalletType.POLY_PROXY,"Collateral return supports Deposit Wallet, Safe Wallet, and Proxy Wallet accounts");}function Gl(e,r){switch(e.account.walletType){case WalletType.GNOSIS_SAFE:return ro(e,r,no);case WalletType.POLY_PROXY:return Jt(e,r,no);default:return nr(e,r,no)}}async function Vs(e,r,t){let o=await unwrap(e.combos.post("/v1/collateral-return/submit",{json:{envelope:t,plan_hash:r},timeout:Qs}).andThen(y(RelayerExecuteResponseSchema)));return new ze(e,o)}var Jl=z.object({ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.max(100).default(20),getPositions:z.boolean().optional(),holdersOnly:z.boolean().optional(),order:z.string().optional(),parentEntityId:z.union([EventIdSchema,SeriesIdSchema]),parentEntityType:CommentParentEntityTypeSchema}),Xl=z.object({getPositions:z.boolean().optional(),id:CommentIdSchema}),em=z.object({address:z.string(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),order:z.string().optional(),pageSize:k.max(100).default(20)}),FI=o(h$1,g,c,b,a);function MI(e,r){let{cursor:t,pageSize:o,...n}=l(r,Jl);return x(s=>{let i=re(s,o);return e.gamma.get("/comments",{params:h({ascending:n.ascending,getPositions:n.getPositions,holdersOnly:n.holdersOnly,limit:i.pageSize,offset:i.offset,order:n.order,parentEntityId:n.parentEntityId,parentEntityType:n.parentEntityType},T())}).andThen(y(ListCommentsResponseSchema)).map(f=>{let P=f.length>=i.pageSize;return {items:f,hasMore:P,nextCursor:P?Z({offset:i.offset+i.pageSize,pageSize:i.pageSize}):void 0}})},t)}var BI=o(h$1,g,c,b,a);async function UI(e,r){let t=l(r,Xl);return unwrap(e.gamma.get(`comments/${t.id}`,{params:h({getPositions:t.getPositions},T())}).andThen(y(ListCommentsResponseSchema)))}var DI=o(h$1,g,c,b,a);function _I(e,r){let{address:t,cursor:o,pageSize:n,...s}=l(r,em);return x(i=>{let f=re(i,n);return e.gamma.get(`comments/user_address/${t}`,{params:h({ascending:s.ascending,limit:f.pageSize,offset:f.offset,order:s.order},T())}).andThen(y(ListCommentsResponseSchema)).map(P=>{let C=P.length>=f.pageSize;return {items:P,hasMore:C,nextCursor:C?Z({offset:f.offset+f.pageSize,pageSize:f.pageSize}):void 0}})},o)}function ot(e,r){let t;try{t=new URL(e);}catch(f){throw new a("Expected a valid Polymarket URL.",{cause:f})}if(t.protocol!=="https:"||t.hostname!=="polymarket.com"&&t.hostname!=="www.polymarket.com")throw new a("Expected a valid Polymarket URL.");let[o,n,...s]=t.pathname.split("/").filter(Boolean),i=s[0];if(r==="market"&&o==="event"&&n!==void 0&&s.length<=1)return i??n;if(o!==r||n===void 0||s.length>0)throw new a(`Expected a Polymarket ${r} URL.`);return n}var cm=z.object({ascending:z.boolean().optional(),closed:z.boolean().default(false),cursor:PaginationCursorSchema.optional(),pageSize:k.optional(),cyom:z.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),ended:z.boolean().optional(),eventDate:IsoCalendarDateStringSchema.optional(),eventWeek:z.number().int().optional(),excludeTagIds:z.array(z.number().int()).optional(),featured:z.boolean().optional(),featuredOrder:z.boolean().optional(),gameIds:z.array(z.number().int()).optional(),ids:z.array(z.number().int()).optional(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeChildren:z.boolean().optional(),includeTemplate:z.boolean().optional(),liquidityMax:z.number().optional(),liquidityMin:z.number().optional(),live:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),parentEventId:z.number().int().optional(),partnerSlug:z.string().optional(),recurrence:z.enum(["daily","weekly","monthly"]).optional(),relatedTags:z.boolean().optional(),seriesIds:z.array(z.number().int()).optional(),slug:z.array(z.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),startTimeMax:IsoDateTimeStringSchema.optional(),startTimeMin:IsoDateTimeStringSchema.optional(),tagIds:z.array(z.number().int()).optional(),tagMatch:z.enum(["any","all"]).optional(),tagSlug:z.string().optional(),titleSearch:z.string().optional(),volumeMax:z.number().optional(),volumeMin:z.number().optional()}),dm=z.union([z.object({id:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({slug:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({url:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()})]),um=z.object({id:z.string()}),rb=o(h$1,g,c,b,a);function tb(e,r={}){let t=l(r,cm);return x(o=>e.gamma.get("/events/keyset",{params:Pm({...t,cursor:o??t.cursor})}).andThen(y(ListEventsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var ob=o(h$1,g,c,b,a);async function nb(e,r){let t=l(r,dm);if("id"in t)return unwrap(e.gamma.get(`events/${t.id}`,{params:gm(t)}).andThen(y(EventSchema)));let o="url"in t?ot(t.url,"event"):t.slug;return unwrap(e.gamma.get(`events/slug/${o}`,{params:Rm(t)}).andThen(y(EventSchema)))}var sb=o(h$1,g,c,b,a);async function ab(e,r){let t=l(r,um);return unwrap(e.gamma.get(`events/${t.id}/tags`).andThen(y(FetchEventTagsResponseSchema)))}var lm=z.array(CanonicalMarketConditionIdSchema).min(1).transform(e=>[...new Set(e)]).refine(e=>e.length<=20,"At most 20 distinct condition ids"),mm=z.array(Dt).min(1).transform(e=>[...new Set(e)]).refine(e=>e.length<=20,"At most 20 distinct event ids"),fm=z.union([z.object({questionId:QuestionIdSchema,conditionIds:z.never().optional(),eventIds:z.never().optional()}),z.object({questionId:z.never().optional(),conditionIds:lm,eventIds:z.never().optional()}),z.object({questionId:z.never().optional(),conditionIds:z.never().optional(),eventIds:mm})]),ib=o(h$1,g,c,b,a);async function pb(e,r){let{conditionIds:t,eventIds:o,questionId:n}=l(r,fm);return unwrap(D(()=>e.data.get("/v2/resolutions",{params:U({questionId:n,condition:t,eventId:o})})).andThen(y(FetchResolutionsResponseSchema)))}var ym=z.object({eventIds:z.array(Dt).min(1).transform(e=>[...new Set(e)])}),cb=o(h$1,g,c,b,a);async function db(e,r){let{eventIds:t}=l(r,ym);return unwrap(D(()=>e.data.get("/v2/live-volume",{params:U({eventId:t})})).andThen(y(FetchEventLiveVolumeResponseSchema)))}function Pm(e){return h(e,T({cursor:"after_cursor",excludeTagIds:"exclude_tag_id",gameIds:"game_id",ids:"id",pageSize:"limit",seriesIds:"series_id",tagIds:"tag_id"}))}function gm(e){return h({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},T())}function Rm(e){return h({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},T())}var vm=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),window:LeaderboardWindowSchema.optional()}),vb=o(h$1,g,c,b,a);function qb(e,r={}){let{cursor:t,pageSize:o,window:n}=l(r,vm);return x(s=>D(()=>e.data.get("/v2/builders/leaderboard",{params:U({timePeriod:n,limit:o,cursor:s})})).andThen(y(ListBuilderLeaderboardResponseSchema)),t)}var qm=z.object({interval:BuilderVolumeIntervalSchema.optional(),bucketLimit:z.number().int().positive().max(90).optional()}),kb=o(h$1,g,c,b,a);async function Ab(e,r={}){let{interval:t,bucketLimit:o}=l(r,qm);return unwrap(D(()=>e.data.get("/v2/builders/volume",{params:U({interval:t,limit:o})})).andThen(y(FetchBuilderVolumeResponseSchema)))}var po=z.string().min(1),km=z.object({category:po.optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),sortBy:TraderLeaderboardSortSchema.optional(),window:LeaderboardWindowSchema.optional()}),Ob=o(h$1,g,c,b,a);function wb(e,r={}){let{category:t,cursor:o,pageSize:n,sortBy:s,window:i}=l(r,km);return x(f=>D(()=>e.data.get("/v2/leaderboard",{params:U({category:t,cursor:f,limit:n,sortBy:s,timePeriod:i})})).andThen(y(ListTraderLeaderboardResponseSchema)),o)}var Am=z.object({category:po.optional(),user:EvmAddressSchema,window:LeaderboardWindowSchema.optional()}),Lb=o(h$1,g,c,b,a);async function Fb(e,r){let{category:t,user:o,window:n}=l(r,Am);return unwrap(D(()=>e.data.get("/v2/leaderboard",{params:U({category:t,timePeriod:n,user:o})})).andThen(y(FetchTraderLeaderboardStandingResponseSchema)))}var Om=z.object({category:po.optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),window:LeaderboardWindowSchema.optional()}),Mb=o(h$1,g,c,b,a);function Bb(e,r={}){let{category:t,cursor:o,pageSize:n,window:s}=l(r,Om);return x(i=>D(()=>e.data.get("/v2/biggest-winners",{params:U({category:t,cursor:i,limit:n,timePeriod:s})})).andThen(y(ListBiggestWinnersResponseSchema)),o)}var Fm=z.object({marketId:z.union([z.string(),z.array(z.string())]).optional(),eventId:z.union([z.string(),z.array(z.string())]).optional(),questionId:z.union([z.string(),z.array(z.string())]).optional(),state:z.union([z.enum(MarketClarificationState),z.array(z.enum(MarketClarificationState))]).optional(),showInFrontend:z.boolean().optional(),txHash:z.string().optional(),order:z.string().optional(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.max(100).default(20)}),Zb=o(h$1,g,c,b,a);function Jb(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,Fm);return x(s=>{let i=re(s,o);return e.gamma.get("/market-clarifications",{params:h({...n,limit:i.pageSize,offset:i.offset},T())}).andThen(y(ListMarketClarificationsResponseSchema)).map(f=>{let P=f.length>=i.pageSize;return {items:f,hasMore:P,nextCursor:P?Z({offset:i.offset+i.pageSize,pageSize:i.pageSize}):void 0}})},t)}var Nm=z.object({ascending:z.boolean().optional(),closed:z.boolean().optional(),clobTokenIds:z.array(z.string()).optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.optional(),conditionIds:z.array(ConditionIdSchema).optional(),cyom:z.boolean().optional(),decimalized:z.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),gameId:z.string().optional(),ids:z.array(z.number().int()).optional(),includeTag:z.boolean().optional(),liquidityNumMax:z.number().optional(),liquidityNumMin:z.number().optional(),locale:z.string().optional(),order:z.string().optional(),positionIds:z.array(PositionIdSchema).optional(),questionIds:z.array(z.string()).optional(),relatedTags:z.boolean().optional(),rfqEnabled:z.boolean().optional(),rewardsMinSize:z.number().optional(),slug:z.array(z.string()).optional(),sportsMarketTypes:z.array(z.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),tagId:z.number().int().optional(),tagMatch:z.enum(["any","all"]).optional(),umaResolutionStatus:z.string().optional(),volumeNumMax:z.number().optional(),volumeNumMin:z.number().optional()}),Km=z.object({id:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),Gm=z.object({slug:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),$m=z.object({url:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),Vm=z.union([Km,Gm,$m]),Ym=z.object({id:z.string()}),mv=o(h$1,g,c,b,a);function aa(e,r={}){let t=l(r,Nm);return x(o=>e.gamma.get("/markets/keyset",{params:sf({...t,cursor:o??t.cursor})}).andThen(y(ListMarketsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var Qm=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(100).optional(),exclude:z.array(ConditionIdSchema).optional()}),fv=o(h$1,g,c,b,a);function yv(e,r={}){let t=l(r,Qm);return x(o=>e.rfq.get("/v1/rfq/combo-markets",{params:af({...t,cursor:o??t.cursor})}).andThen(y(ListComboMarketsResponseSchema)).map(n=>({items:n.markets,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var Pv=o(h$1,g,c,b,a);async function gv(e,r){let t=l(r,Vm);return "id"in t?pf(e,t):"url"in t?ta(e,{includeTag:t.includeTag,locale:t.locale,slug:ot(t.url,"market")}):ta(e,t)}var Rv=o(h$1,g,c,b,a);async function Ev(e,r){let t=l(r,Ym);return unwrap(e.gamma.get(`markets/${t.id}/tags`).andThen(y(FetchMarketTagsResponseSchema)))}var Zm=z.object({conditionIds:ce(CanonicalMarketConditionIdSchema,20),cursor:PaginationCursorSchema.optional(),includePnl:z.boolean().optional(),minBalance:z.number().nonnegative().optional(),pageSize:k.max(1e3).default(100)}).superRefine(({conditionIds:e,includePnl:r,pageSize:t},o)=>{r&&(e.length!==1&&o.addIssue({code:"custom",message:"includePnl requires exactly one conditionId",path:["conditionIds"]}),t>100&&o.addIssue({code:"custom",message:"includePnl supports pageSize at most 100",path:["pageSize"]}));}),Sv=o(h$1,g,c,b,a);function hv(e,r){let{conditionIds:t,cursor:o,includePnl:n,minBalance:s,pageSize:i}=l(r,Zm);return x(f=>D(()=>e.data.get("/v2/holders",{params:U({condition:t,limit:i,cursor:f,includePnl:n,minBalance:s})})).andThen(y(ListMarketHoldersResponseSchema)),o)}var Jm=360*60*60,Xm=253402300799,uo=_e.pipe(z.number().int().positive().max(Xm)),ia=z.string().min(1).pipe(ClobAssetIdSchema),pa={assetId:ia,bucketSeconds:z.number().int().min(60).max(86400).optional(),cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e4).default(1e4)},ef=z.object({...pa,interval:PriceHistoryIntervalSchema,start:z.never().optional(),end:z.never().optional(),asOf:z.never().optional()}).superRefine(({bucketSeconds:e,interval:r},t)=>{let o=r===PriceHistoryInterval.Max||r===PriceHistoryInterval.OneMonth?600:r===PriceHistoryInterval.OneWeek?300:60;e!==void 0&&e<o&&t.addIssue({code:"custom",message:`bucketSeconds must be at least ${o} for this interval`,path:["bucketSeconds"]});}),rf=z.object({...pa,start:uo,end:uo.optional(),interval:z.never().optional(),asOf:z.never().optional()}).superRefine(({end:e,start:r},t)=>{if(e!==void 0&&e<r){t.addIssue({code:"custom",message:"end must not precede start",path:["end"]});return}(e??Math.floor(Date.now()/1e3))-r>Jm&&t.addIssue({code:"custom",message:"start to end must span at most 15 days",path:["end"]});}),tf=z.object({assetId:ia,asOf:uo,interval:z.never().optional(),start:z.never().optional(),end:z.never().optional(),bucketSeconds:z.never().optional(),cursor:z.never().optional(),pageSize:z.never().optional()}),of=z.union([ef,rf,tf]),Tv=o(h$1,g,c,b,a);function xv(e,r){let{assetId:t,cursor:o,pageSize:n,...s}=l(r,of);return x(i=>D(()=>e.data.get("/v2/prices-history",{params:U({...s,tokenId:t,limit:n,cursor:i})})).andThen(y(ListPriceHistoryResponseSchema)),o)}var nf=z.object({conditionIds:ce(CanonicalMarketConditionIdSchema,20).optional()}),Cv=o(h$1,g,c,b,a);async function Iv(e,r={}){let{conditionIds:t}=l(r,nf);return unwrap(D(()=>e.data.get("/v2/oi",{params:U({condition:t})})).andThen(y(FetchOpenInterestResponseSchema)))}function sf(e){return h(e,T({cursor:"after_cursor",ids:"id",pageSize:"limit"}))}function af(e){return h({cursor:e.cursor,exclude:e.exclude?.join(","),pageSize:e.pageSize},{cursor:"cursor",exclude:"exclude",pageSize:"limit"})}async function ta(e,r){return unwrap(e.gamma.get(`markets/slug/${r.slug}`,{params:h({includeTag:r.includeTag,locale:r.locale},T())}).andThen(y(MarketSchema)))}async function pf(e,r){return unwrap(e.gamma.get(`markets/${r.id}`,{params:h({includeTag:r.includeTag,locale:r.locale},T())}).andThen(y(MarketSchema)))}function br(e){if(!(e instanceof g))return e;let r=cf(e);return r===void 0?e:new g(e.message,{cause:e,...e.code!==void 0?{code:e.code}:{},restriction:r,...e.retryAfter!==void 0?{retryAfter:e.retryAfter}:{},status:e.status})}function cf(e){if(e.status===425)return "restarting";if(e.status===503&&e.code==="post_only_mode")return "post_only"}var lf=z.object({orderId:z.string()}),mf=z.object({orderIds:z.array(z.string()).min(1).max(3e3)}),ff=z.object({market:z.string().optional()}),yf=Ce(ff.shape).refine(e=>e.market!==void 0||e.assetId!==void 0||e.tokenId!==void 0,{message:"At least one of market or assetId is required.",path:["market"]}),Dv=o(g,h$1,n,c,b,a);async function _v(e,r){let t=l(r,lf);return pt(e,"/order",{orderID:t.orderId})}var zv=o(g,h$1,n,c,b,a);async function Wv(e,r){let t=l(r,mf);return pt(e,"/orders",t.orderIds)}var jv=o(g,h$1,n,c,b);async function Hv(e){return pt(e,"/cancel-all")}var Nv=o(g,h$1,n,c,b,a);async function Kv(e,r){let t=l(r,yf);return pt(e,"/cancel-market-orders",{asset_id:t.assetId??t.tokenId,market:t.market})}async function pt(e,r,t){return unwrap(e.secureClob.del(r,{json:t,rateLimitBucket:"cancel"}).mapErr(br).andThen(y(CancelOrdersResponseSchema)))}var we=z.object({assetId:ClobAssetIdSchema,tokenId:z.never().optional()}),Le=z.object({assetId:z.never().optional(),tokenId:ClobAssetIdSchema});var ma=z.object({orderType:z.union([z.literal(OrderType.FAK),z.literal(OrderType.FOK)]).default(OrderType.FOK)}),da=ma.extend({side:z.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema}),ua=ma.extend({side:z.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema}),gf=z.union([da.extend(we.shape),da.extend(Le.shape),ua.extend(we.shape),ua.extend(Le.shape)]).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r})),oq=o(l$1,h$1,g,c,b,a);async function nq(e,r){let t=l(r,gf),o=t.side===OrderSide.BUY?t.amount:t.shares;return Rf(e,{amount:o,assetId:t.assetId,orderType:t.orderType,side:t.side})}async function Rf(e,r){let t=await rt(e,{assetId:r.assetId});return lo({amount:r.amount,orderBook:t,orderType:r.orderType,side:r.side})}function lo(e){let{orderBook:r}=e,t=e.side===OrderSide.BUY?Sf(r.asks,e.amount,e.orderType):hf(r.bids,e.amount,e.orderType);return invariant(Ef(t,r.tickSize),`Resolved market price fell outside the valid range for tick size ${r.tickSize}.`),t}function Ef(e,r){return e>=r&&e<=1-r}function Sf(e,r,t){if(e.length===0)throw new l$1("No resting liquidity.");let o=0;for(let s=e.length-1;s>=0;s-=1){let i=e[s];if(i!==void 0&&(o+=Number.parseFloat(i.size)*Number.parseFloat(i.price),o>=r))return Number.parseFloat(i.price)}if(t===OrderType.FOK)throw new l$1("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}function hf(e,r,t){if(e.length===0)throw new l$1("No resting liquidity.");let o=0;for(let s=e.length-1;s>=0;s-=1){let i=e[s];if(i!==void 0&&(o+=Number.parseFloat(i.size),o>=r))return Number.parseFloat(i.price)}if(t===OrderType.FOK)throw new l$1("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}var If=BigInt(Number.MAX_SAFE_INTEGER),bf=z.string().refine(qf,{message:"Order salt must be a non-negative JavaScript-safe integer."}),Pa=z.looseObject({salt:bf}),vf=z.array(Pa).min(1).max(15),fq=o(h$1,g,n,c,b,a),yq=o(h$1,g,n,c,b,a);function ut(e){return async function(t){l(t,Pa);let o=ga(e,t);return unwrap(e.secureClob.post("/order",{json:o,rateLimitBucket:"order"}).mapErr(br).andThen(y(OrderResponseSchema)))}}function Pq(e){return async function(t){l(t,vf);let o=t.map(n=>ga(e,n));return unwrap(e.secureClob.post("/orders",{json:o,rateLimitBucket:"order"}).mapErr(br).andThen(y(OrderResponsesSchema)))}}function ga(e,r){return invariant(r.postOnly!==true||r.orderType===OrderType.GTC||r.orderType===OrderType.GTD,"Post-only orders are only supported for GTC and GTD order types."),{deferExec:false,order:{builder:r.builder,expiration:`${r.expiration}`,maker:r.maker,makerAmount:r.makerAmount,metadata:r.metadata,salt:Number(BigInt(r.salt)),side:r.side,signature:r.signature,signatureType:r.signatureType,signer:r.signer,takerAmount:r.takerAmount,timestamp:r.timestamp,tokenId:r.tokenId},orderType:r.orderType,owner:e.credentials.key,...r.postOnly===true?{postOnly:true}:{}}}function qf(e){try{let r=BigInt(e);return r>=0n&&r<=If}catch{return false}}var ha=32,wf=1n,Lf=2n,Ta=3n,Sa=50,Ff=(1n<<256n)-1n,Mf=(1n<<64n)-1n<<40n;function fo(e){let r=AbiParameters.encode([{name:"legs",type:"uint256[]"}],[e]),t=Hash.keccak256(AbiParameters.encode([{name:"moduleId",type:"uint256"},{name:"data",type:"bytes"}],[Ta,r])),o=toComboConditionId(`0x03${t.slice(34)}0000000000000000000000000000`);return {conditionId:o,positionIds:[toPositionId(BigInt(`${o}00`).toString()),toPositionId(BigInt(`${o}01`).toString())]}}function yo(e){if(e.length===0||e.length>Sa)throw new a(`Combo legs must include 1 to ${Sa} position IDs`);let r=e.map(t=>{let o=Po(t),n=o.toString(16).padStart(ha*2,"0"),s=Number.parseInt(n.slice(0,2),16),i=Number.parseInt(n.slice(-2),16);if(s!==1&&s!==2||i>1)throw new a("Combo legs must be binary or neg-risk YES/NO position IDs");return {value:o,conditionId:n.slice(0,-2)}});r.sort((t,o)=>t.value<o.value?-1:t.value>o.value?1:0);for(let t=1;t<r.length;t+=1){let o=r[t-1],n=r[t];if(o===void 0||n===void 0)throw new a("Invalid combo leg set");if(o.value===n.value)throw new a("Combo legs must not contain duplicate position IDs");if(o.conditionId===n.conditionId)throw new a("Combo legs must not contain both outcomes for the same condition")}return r.map(t=>t.value)}function ar(e){try{return (Po(e)&Mf)===0n}catch{return false}}function xa(e){let t=Po(e).toString(16).padStart(ha*2,"0"),o=BigInt(`0x${t.slice(0,2)}`),n=Number.parseInt(t.slice(-2),16);if(o!==wf&&o!==Lf&&o!==Ta)throw new a("Position ID must use a supported protocol v2 module");if(n!==0&&n!==1)throw new a("Protocol v2 position ID must be a YES/NO position ID");return {conditionId:toConditionId(`0x${t.slice(0,-2)}`),outcomeIndex:n}}function Po(e){let r=e.trim(),t;if(r.length===0)throw new a("Position ID must be a uint256 value");try{t=BigInt(r);}catch{throw new a("Position ID must be a uint256 value")}if(t<0n||t>Ff)throw new a("Position ID must be a uint256 value");return t}var be=1000000n,Bf=8*Number.EPSILON,go=6,Uf=8*Number.EPSILON;function Ro(e){let r=e*Number(be),t=Math.round(r),o=Uf*Math.max(1,Math.abs(r)),n=Math.abs(r-t)<=o?t:Math.trunc(r);return BigInt(n)}function qr(e){let r=Math.round(e*Number(be)),t=r/Number(be);if(!Number.isSafeInteger(r)||Math.abs(e-t)>Bf)throw new a("has unsupported precision.");return BigInt(r)}function Eo(e){return Number(e)/Number(be)}function mt(e){return invariant(Number.isInteger(e)&&e>=0&&e<=go,`Decimal places must be an integer between 0 and ${go}.`),10n**BigInt(go-e)}function ft(e,r,t,o){invariant(e>=0n,"Value must be non-negative."),invariant(r>=0n,"Multiplier must be non-negative."),invariant(t>0n,"Denominator must be positive.");let n=e*r,s=n/t;return o==="up"&&n%t!==0n?s+1n:s}function So(e,r,t){let o=mt(r);return ft(e,1n,o,t)*o}function ho(e){switch(e){case .1:return {amount:3,size:2};case .01:return {amount:4,size:2};case .005:return {amount:5,size:2};case .0025:return {amount:6,size:2};case .001:return {amount:5,size:2};case 1e-4:return {amount:6,size:2}}invariant(false,`Unsupported tick size: ${e}`);}function yt(e,r){let t=qr(e),o=qr(r);if(t<o||t>be-o)throw new a(`must be between ${r} and ${1-r} for tick size ${r}.`);if(t%o!==0n)throw new a(`${e} must be a multiple of tick size ${r}.`);return t}function _f(e,r){return r?e.environment.contracts.negRiskExchange:e.environment.contracts.standardExchange}function Fe(e,r,t){return ar(r)?e.environment.contracts.exchangeV3:_f(e,t)}function To(e,r,t,o){let n=mt(t);return ft(e,r,be*n,o)*n}function zf(e,r,t,o){let n=mt(t);return ft(e,be,r*n,o)*n}function Ia(e){let r=ho(e.tickSize),t=So(Ro(e.size),r.size,"down");return e.side===OrderSide.BUY?{offeredAmount:To(t,e.price,r.amount,"down"),requestedAmount:t}:{offeredAmount:t,requestedAmount:To(t,e.price,r.amount,"down")}}function ba(e){let r=ho(e.tickSize),t=So(Ro(e.amount),r.size,"down"),o=e.protectPrice?"up":"down";return e.side===OrderSide.BUY?{offeredAmount:t,requestedAmount:zf(t,e.price,r.amount,o)}:{offeredAmount:t,requestedAmount:To(t,e.price,r.amount,o)}}var xo=600*1e3,Co=Number.POSITIVE_INFINITY,Io=class{#e;#r=new Map;#t=new Map;#o=new Map;constructor(r){this.#e=r;}async resolveMarket(r){let t=await this.#s(r);return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize}}async resolveBuilderTakerFeeRate(r){return r===void 0?0:Pt(this.#r,r,xo,()=>this.#e.fetchBuilderTakerFeeRate(r))}async fetchCurrentMarket(r){let t=await Pt(this.#t,r,Co,()=>this.#e.resolveCondition(r)),o=await this.#a(t);return this.#n(r,t,o),this.#o.set(t,va(o,xo)),{feeInfo:o.feeInfo,negRisk:o.negRisk,tickSize:o.tickSize}}async#s(r){let t=await Pt(this.#t,r,Co,()=>this.#e.resolveCondition(r)),o=await Pt(this.#o,t,xo,()=>this.#a(t));return this.#n(r,t,o),o}#n(r,t,o){if(!o.assetIds.has(r))throw this.#t.delete(r),this.#o.delete(t),new b(`Market ${t} does not include asset ${r}.`)}async#a(r){let t=await this.#e.fetchMarket(r),o=new Set(t.tokens.map(({assetId:n})=>n));for(let n of o)this.#t.set(n,va(r));return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize,assetIds:o}}};function Pt(e,r,t,o){let n=e.get(r);if(n!==void 0&&(n.expiresAt===void 0||n.expiresAt>Date.now()))return n.promise;let s={promise:o()};return s.promise.then(()=>{s.expiresAt=Date.now()+t;},()=>{e.get(r)===s&&e.delete(r);}),e.set(r,s),s.promise}function va(e,r=Co){return {expiresAt:Date.now()+r,promise:Promise.resolve(e)}}var qa=new WeakMap;function $e(e,r){return bo(e).resolveMarket(r)}function kr(e,r){return bo(e).fetchCurrentMarket(r)}function ka(e,r){return bo(e).resolveBuilderTakerFeeRate(r)}function bo(e){let r=qa.get(e);if(r!==void 0)return r;let t=new Io({fetchBuilderTakerFeeRate:async o=>(await Gs(e,{builderCode:o})).taker,fetchMarket:o=>Ks(e,{conditionId:o}),resolveCondition:o=>Ns(e,{assetId:o})});return qa.set(e,t),t}var Hf=180,wa=z.strictObject({price:PositiveDecimalNumberSchema,size:PositiveDecimalNumberSchema,side:OrderSideSchema,builderCode:BuilderCodeSchema.optional(),postOnly:z.boolean().default(false),expiration:z.number().int().nonnegative().optional()}),Fa=z.union([wa.extend(we.shape),wa.extend(Le.shape)]).superRefine((e,r)=>{if(e.expiration!==void 0){let t=Math.floor(Date.now()/1e3)+Hf;e.expiration<t&&r.addIssue({code:"custom",message:"Expiration must be at least 3 minutes in the future.",path:["expiration"]});}}).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r}));async function Ma(e,r){let t=await Nf(e,{assetId:r.assetId,price:r.price}),o=Ia({price:t.price,side:r.side,size:r.size,tickSize:t.tickSize});return {assetId:r.assetId,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:r.expiration??0,funderAddress:t.funderAddress,offeredAmount:o.offeredAmount,orderType:r.expiration===void 0?OrderType.GTC:OrderType.GTD,side:r.side,signer:t.signerAddress,requestedAmount:o.requestedAmount}}async function Nf(e,r){let t=await $e(e,r.assetId);try{return La(e,r,t)}catch(o){if(!(o instanceof a))throw o;let n=await kr(e,r.assetId);return La(e,r,n)}}function La(e,r,t){let o=Kf(r.price,t.tickSize);return {exchangeAddress:Fe(e,r.assetId,t.negRisk),funderAddress:e.account.wallet,price:o,signerAddress:e.account.signer,tickSize:t.tickSize}}function Kf(e,r){try{return yt(e,r)}catch(t){throw t instanceof a?new a(`Price ${t.message}`,{cause:t}):t}}var ja=z.object({builderCode:BuilderCodeSchema.optional(),orderType:z.union([z.literal(OrderType.FAK),z.literal(OrderType.FOK)]).default(OrderType.FAK)}),Ua=ja.extend({side:z.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema,maxSpend:PositiveDecimalNumberSchema.optional(),maxPrice:PositiveDecimalNumberSchema.optional()}),Da=ja.extend({side:z.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema,minPrice:PositiveDecimalNumberSchema.optional()}),Ha=z.union([Ua.extend(we.shape),Ua.extend(Le.shape),Da.extend(we.shape),Da.extend(Le.shape)]).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r}));async function Na(e,r){let t=await $f(e,r,r.assetId),o=ba({amount:t.resolvedAmount,price:t.price,protectPrice:Ga(r),side:r.side,tickSize:t.tickSize});return {assetId:r.assetId,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:0,funderAddress:t.funderAddress,offeredAmount:o.offeredAmount,orderType:r.orderType,side:r.side,signer:t.signerAddress,requestedAmount:o.requestedAmount}}async function $f(e,r,t){return Ga(r)?Vf(e,r,t):Yf(e,r,t)}async function Vf(e,r,t){let o=r.side===OrderSide.BUY?r.amount:r.shares;if(r.side===OrderSide.BUY&&r.maxSpend!==void 0){let{builderTakerFeeRate:s,market:i}=await $a(e,t,r.builderCode);try{return _a(e,r,t,o,s,r.maxSpend,i)}catch(f){if(!(f instanceof a))throw f;let P=await kr(e,t);return _a(e,r,t,o,s,r.maxSpend,P)}}let n=await $e(e,t);try{return za(e,r,t,o,n)}catch(s){if(!(s instanceof a))throw s;let i=await kr(e,t);return za(e,r,t,o,i)}}function _a(e,r,t,o,n,s,i){let f=Ka(r,i.tickSize),P=Eo(f);return {exchangeAddress:Fe(e,t,i.negRisk),funderAddress:e.account.wallet,price:f,resolvedAmount:Va({amount:o,builderTakerFeeRate:n,maxSpend:s,platformFeeExponent:i.feeInfo.exponent,platformFeeRate:i.feeInfo.rate,price:P}),signerAddress:e.account.signer,tickSize:i.tickSize}}function za(e,r,t,o,n){let s=Ka(r,n.tickSize);return {exchangeAddress:Fe(e,t,n.negRisk),funderAddress:e.account.wallet,price:s,resolvedAmount:o,signerAddress:e.account.signer,tickSize:n.tickSize}}async function Yf(e,r,t){let o=r.side===OrderSide.BUY?r.amount:r.shares,n=r.side===OrderSide.BUY&&r.maxSpend!==void 0?$a(e,t,r.builderCode):void 0,[s,i]=await Promise.all([rt(e,{assetId:t}),n]);if(s.assetId!==t)throw new b(`Order book returned asset ${s.assetId} for requested asset ${t}.`);let f=qr(lo({amount:o,orderBook:s,orderType:r.orderType,side:r.side}));return {exchangeAddress:Fe(e,t,s.negRisk),funderAddress:e.account.wallet,price:f,resolvedAmount:Qf(r,o,Eo(f),i),signerAddress:e.account.signer,tickSize:s.tickSize}}function Qf(e,r,t,o){return e.side!==OrderSide.BUY||e.maxSpend===void 0||o===void 0?r:Va({amount:r,builderTakerFeeRate:o.builderTakerFeeRate,maxSpend:e.maxSpend,platformFeeExponent:o.market.feeInfo.exponent,platformFeeRate:o.market.feeInfo.rate,price:t})}function Ka(e,r){return e.side===OrderSide.BUY?(invariant(e.maxPrice!==void 0,"Protected BUY market order requires maxPrice."),Wa("maxPrice",e.maxPrice,r)):(invariant(e.minPrice!==void 0,"Protected SELL market order requires minPrice."),Wa("minPrice",e.minPrice,r))}function Wa(e,r,t){try{return yt(r,t)}catch(o){throw o instanceof a?new a(`${e} ${o.message}`,{cause:o}):o}}function Ga(e){return e.side===OrderSide.BUY&&e.maxPrice!==void 0||e.side===OrderSide.SELL&&e.minPrice!==void 0}async function $a(e,r,t){let[o,n]=await Promise.all([$e(e,r),ka(e,t)]);return {builderTakerFeeRate:n,market:o}}function Va(e){let r=e.platformFeeRate*(e.price*(1-e.price))**e.platformFeeExponent,t=e.amount/e.price*r,o=e.amount+t+e.amount*e.builderTakerFeeRate;return e.maxSpend<=o?e.maxSpend/(1+r/e.price+e.builderTakerFeeRate):e.amount}var Za="Polymarket CTF Exchange",Jf="DepositWallet",Xf="1",qo="0x0000000000000000000000000000000000000000000000000000000000000000",ko="Order(uint256 salt,address maker,address signer,uint256 tokenId,uint256 makerAmount,uint256 takerAmount,uint8 side,uint8 signatureType,uint256 timestamp,bytes32 metadata,bytes32 builder)",ey=Hash.keccak256(Bytes.fromString(ko),{as:"Hex"}),ry=Hash.keccak256(Bytes.fromString("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),{as:"Hex"}),ty=Hash.keccak256(Bytes.fromString(Za),{as:"Hex"}),oy=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Ja=[{name:"salt",type:"uint256"},{name:"maker",type:"address"},{name:"signer",type:"address"},{name:"tokenId",type:"uint256"},{name:"makerAmount",type:"uint256"},{name:"takerAmount",type:"uint256"},{name:"side",type:"uint8"},{name:"signatureType",type:"uint8"},{name:"timestamp",type:"uint256"},{name:"metadata",type:"bytes32"},{name:"builder",type:"bytes32"}],ny=[{name:"contents",type:"Order"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"}];function Rt(e){let r=sy(e.domain,e.order);return e.order.signatureType!==SignatureType.POLY_1271?r:{domain:ri(e.domain),message:{chainId:e.domain.chainId,contents:r.message,name:Jf,salt:qo,verifyingContract:e.order.signer,version:Xf},primaryType:"TypedDataSign",types:{Order:Ja,TypedDataSign:ny}}}function Et(e){if(e.order.signatureType!==SignatureType.POLY_1271)return e.signature;let r=Bytes.toHex(Bytes.fromString(ko)),t=ko.length.toString(16).padStart(4,"0");return expectErc1271Signature(`0x${e.signature.slice(2)}${ay(e.domain).slice(2)}${iy(e.order).slice(2)}${r.slice(2)}${t}`)}function Xa(e){return {chainId:e.chainId,exchange:e.exchange,protocolVersion:"3"}}function pk(e,r,t){return e===OrderSide.SELL?t.toString():((r*t+999999n)/1000000n).toString()}function ck(e,r,t){return e===OrderSide.SELL?(r*t/1000000n).toString():t.toString()}function ei(e){return {builder:e.builder??qo,maker:e.maker,makerAmount:BigInt(e.makerAmount),metadata:e.metadata??qo,salt:BigInt(e.salt),side:wo(e.side),signatureType:e.signatureType,signer:e.signer,takerAmount:BigInt(e.takerAmount),timestamp:BigInt(e.timestamp),tokenId:BigInt(e.tokenId)}}function sy(e,r){return {domain:ri(e),message:ei(r),primaryType:"Order",types:{EIP712Domain:oy,Order:Ja}}}function ri(e){return {chainId:e.chainId,name:Za,verifyingContract:e.exchange,version:e.protocolVersion}}function ay(e){return expectHexString(Hash.keccak256(AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"address"}],[ry,ty,py(e.protocolVersion),BigInt(e.chainId),e.exchange]),{as:"Hex"}))}function iy(e){let r=ei(e);return expectHexString(Hash.keccak256(AbiParameters.encode([{type:"bytes32"},{type:"uint256"},{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"},{type:"uint8"},{type:"uint8"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[ey,r.salt,r.maker,r.signer,r.tokenId,r.makerAmount,r.takerAmount,r.side,r.signatureType,r.timestamp,r.metadata,r.builder]),{as:"Hex"}))}function py(e){return expectHexString(Hash.keccak256(Bytes.fromString(e),{as:"Hex"}))}function wo(e){return e===0||e===1?e:e===OrderSide.BUY?0:1}var ti="0x0000000000000000000000000000000000000000000000000000000000000000";function Lo(e,r){let t=Sr(r);return {builder:e.builderCode??ti,chainId:e.chainId,exchangeAddress:e.exchangeAddress,expiration:e.expiration,maker:t.maker,makerAmount:e.offeredAmount.toString(),metadata:ti,orderType:e.orderType,protocolVersion:ar(e.assetId)?"3":"2",salt:cy().toString(),side:e.side,signatureType:t.signatureType,signer:t.signer,takerAmount:e.requestedAmount.toString(),timestamp:Date.now().toString(),tokenId:e.assetId}}function Fo(e,r){let{chainId:t,exchangeAddress:o,protocolVersion:n,...s}=e;return {...s,signature:r}}function cy(){let e=new Uint8Array(8);return globalThis.crypto.getRandomValues(e),BigInt(`0x${Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}`)&(1n<<53n)-1n}function Mo(e){return Rt({domain:oi(e),order:e})}function Bo(e,r){return Et({domain:oi(e),order:e,signature:r})}function oi(e){return {chainId:e.chainId,exchange:e.exchangeAddress,protocolVersion:e.protocolVersion}}function Uo(e){return {kind:"signOrder",payload:e}}var dy=o(l$1,h$1,g,n,c,b,a);async function Do(e,r){let t=l(r,Ha);return async function*(){let o=await Na(e,t),n=Lo(o,e.account),s=expectEvmSignature(yield Uo(Mo(n)));return Fo(n,rr(e.account,Bo(n,s)))}.call(null)}var uy=o(h$1,g,n,c,b,a);async function _o(e,r){let t=l(r,Fa);return async function*(){let o=await Ma(e,t),n=Lo(o,e.account),s=expectEvmSignature(yield Uo(Mo(n))),i=Fo(n,rr(e.account,Bo(n,s)));return t.postOnly===true?{...i,postOnly:true}:i}.call(null)}var vk=dy;async function qk(e,r){return si(e,Do(e,r))}var kk=uy;async function Ak(e,r){return si(e,_o(e,r))}async function si(e,r){let t=await r;return async function*(){let o=yield*t;return ut(e)(o)}.call(null)}var fy=250,yy=3e4,Py={timeoutMs:z.number().int().positive().optional()},gy=z.object(Py).default({}),Dk=o(h$1,g,n,i,j,c,b,a);function Ry(e){return e.status===TradeStatus.Confirmed||e.status===TradeStatus.Failed}function ai(e){return e.status===TradeStatus.Failed}async function _k(e,r,t){let{timeoutMs:o=yy}=l(t,gy),n=[...new Set(r.tradeIds)];if(n.length===0)return [...r.transactionsHashes];let s=new Map,i$1=Date.now()+o;for(;s.size<n.length;){let P=n.filter(I=>!s.has(I)),C=await Promise.all(P.map(I=>Yn(e,{id:I}).firstPage()));for(let I of C)for(let z of I.items)n.includes(z.id)&&Ry(z)&&s.set(z.id,z);if(s.size===n.length)break;if(Date.now()>=i$1){let I=n.filter(z=>!s.has(z));throw new i(`Timed out waiting for trades to settle: ${I.join(", ")}`)}await delay(fy);}let f=[...s.values()];if(f.every(ai))throw new j(`Every fill of order ${r.orderId} failed execution: ${n.join(", ")}`);return [...new Set(f.filter(P=>!ai(P)).map(P=>P.transactionHash))].map(P=>TxHashSchema.parse(P))}async function di(e,r){let t=r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,{allowances:o}=await zt(e,r.side===OrderSide.BUY?{assetType:t}:{assetType:t,assetId:r.assetId});return Sy(o,r.spenderAddress)}function Sy(e,r){return Object.entries(e).find(([o])=>isSameEvmAddress(o,r))?.[1]??0n}var nA=o(k$1,l$1,h$1,g,n,c,b,a);function hy(e,r){return Do(e,r).then(_(e.signer))}var sA=o(k$1,l$1,h$1,g,n,i,j,c,b,a);function aA(e,r){return hy(e,r).then(t=>li(e,t))}var iA=o(k$1,h$1,g,n,c,b,a);function Ty(e,r){return _o(e,r).then(_(e.signer))}var pA=o(k$1,h$1,g,n,i,j,c,b,a);function cA(e,r){return Ty(e,r).then(t=>li(e,t))}async function li(e,r){let t=ut(e);try{return await t(r)}catch(o){if(!Cy(o))throw o;let n=await xy(e,r,t);if(n===void 0)throw o;return n}}async function xy(e,r,t){return await Iy(e,r)?t(r):void 0}function Cy(e){return e instanceof g&&e.status===400&&e.message.includes("allowance is not enough")}async function Iy(e,r){let t=r.tokenId,o=await $e(e,t),n=Fe(e,t,o.negRisk),s=BigInt(r.makerAmount);return await di(e,{assetId:t,spenderAddress:n,side:r.side})>=s?false:(await(r.side===OrderSide.BUY?await Os(e,{amount:"max",spenderAddress:n,tokenAddress:e.environment.contracts.collateralToken}):await ws(e,{operatorAddress:n,tokenAddress:ar(t)?e.environment.contracts.positionManager:e.environment.contracts.conditionalTokens})).wait(),await Zn(e,{assetType:r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,tokenId:r.side===OrderSide.SELL?t:void 0}),true)}function mi(e){let r=TypedData.getSignPayload(jo(e));return expectEvmSignature(Signature.toHex(Secp256k1.sign({payload:r,privateKey:e.privateKey})))}function jo(e){return {domain:{chainId:e.chainId,name:"Polymarket",version:"1"},message:{data:Hash.keccak256(encode(fi(e.op)),{as:"Hex"}),salt:BigInt(e.salt),ts:BigInt(e.timestamp)},primaryType:"Op",types:{Op:[{name:"data",type:"bytes32"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}]}}}function fi(e){return Array.isArray(e)?e.filter(r=>r!==void 0).map(fi):e}function Pi(e,r){let t=yi(e.get("Poly-RateLimit-Remaining"),/^-?\d+$/),o=yi(e.get("Poly-RateLimit-Reset"),/^\d+$/),n=wy(e.get("Poly-RateLimit-Tier")),s=e.get("Poly-RateLimit-Warning")?.trim().toLowerCase()==="true";if(!(t===void 0&&o===void 0&&n===void 0&&!s))return {...r===void 0?{}:{bucket:r},remaining:t,reset:o,tier:n,warning:s}}function yi(e,r){let t=e?.trim();if(t===void 0||!r.test(t))return;let o=Number(t);return Number.isSafeInteger(o)?o:void 0}function wy(e){if(!(e===null||e.trim()===""))return e}var St=class{#e;#r;#t;#o;constructor({root:r,headers:t,resolveHeaders:o,onRateLimitUpdate:n}){this.#e=Ln.create({prefixUrl:r,throwHttpErrors:false}),this.#r=t,this.#t=o,this.#o=n;}get(r,t={}){return this.#n("GET",r,t)}post(r,t={}){return this.#n("POST",r,t)}patch(r,t={}){return this.#n("PATCH",r,t)}del(r,t={}){return this.#n("DELETE",r,t)}#s(r){return r.startsWith("/")?r.slice(1):r}#n(r,t,o){return this.#u(this.#a(r,t,o),o.rateLimitBucket)}async#a(r,t,o){let n=this.#i(r,t,o),s=await this.#t?.(n),i=this.#c(this.#r,n.headers,s);return n.body!==void 0&&!i.has("content-type")&&i.set("content-type","application/json"),this.#e(this.#s(t),{body:n.body,headers:i,method:r,searchParams:n.params,...o.timeout!==void 0&&{timeout:o.timeout}})}#i(r,t,o){return {body:"json"in o?this.#p(o.json):void 0,headers:o.headers,json:"json"in o?o.json:void 0,method:r,params:"params"in o?o.params:void 0,path:t}}#p(r){if(r!==void 0)return JSON.stringify(r)}#c(...r){let t=new Headers;for(let o of r)if(o!==void 0)for(let[n,s]of new Headers(o).entries())t.set(n,s);return t}#u(r,t){return ResultAsync.fromPromise(r.then(async o=>{let n=Pi(o.headers,t);if(n!==void 0&&this.#l(n),o.ok)return o;let s=this.#d(o);if(o.status===429)throw new h$1(`Request to ${o.url} was rate limited`,{rateLimit:n,retryAfter:s});let{code:i,message:f,retryAfter:P}=await this.#m(o);throw new g(f,{code:i,retryAfter:s??P,status:o.status})}),o=>o instanceof h$1||o instanceof g?o:c.fromError(o))}#l(r){try{Promise.resolve(this.#o?.(r)).catch(()=>{});}catch{}}#d(r){let t=r.headers.get("retry-after");if(!(t===null||!/^\d+$/.test(t)))return Number(t)}async#m(r){let t=r.headers.get("content-type")?.toLowerCase();if(t?.includes("application/json")){let{error:n,code:s,retry_after_seconds:i}=await r.clone().json().catch(()=>({}));if(n)return {message:`${String(n)} (${r.url})`,...typeof s=="string"&&s!==""?{code:s}:{},...typeof i=="number"&&Number.isFinite(i)&&i>=0?{retryAfter:i}:{}}}if(t?.includes("text/plain")){let n=await r.clone().text().then(s=>s.trim(),()=>"");if(n)return {message:`${n} (${r.url})`}}return r.headers.get("server")?.toLowerCase()?.includes("cloudflare")?{message:`Request to ${r.url} was blocked by Cloudflare with status ${r.status}`}:t?.includes("text/html")||t?.includes("application/xhtml+xml")?{message:`Request to ${r.url} failed with status ${r.status} and an unexpected HTML response body`}:{message:`Request to ${r.url} failed with status ${r.status} and unreadable response body`}}};var My=1e4,By=3e4,Uy=5e3,Dy=10*6e4,_y=3e4,zy=25e3,Wy=65e3,gi=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},My);}handleMessage(r){return r!=="PONG"?false:(this.#e=Date.now(),true)}isStale(r){return r-this.#e>By}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},Ri=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},Uy);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>Dy}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},Ei=class{#e=0;#r;start(r){this.#e=Date.now(),this.#r=r;}stop(){this.#r=void 0;}handleMessage(r){return r!=="ping"?false:(this.#e=Date.now(),this.#r?.("pong"),true)}isStale(r){return r-this.#e>_y}},ht=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r(JSON.stringify({id:0,req:"post",op:{type:"ping"}}));},zy);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>Wy}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}};var Ny=5e3,Ky=250,Gy=3e4,Tt=class{#e;#r=0;schedule(r){if(this.#e!==void 0||!r.shouldReconnect())return;let t=Vy(this.#r,{baseMs:Ky,maxMs:Gy});this.#r+=1,this.#e=setNonBlockingTimeout(()=>{this.#e=void 0,this.#t(r);},t);}stop(){this.#e!==void 0&&(clearTimeout(this.#e),this.#e=void 0);}resetBackoff(){this.#r=0,this.stop();}async#t(r){if(r.shouldReconnect())try{await r.reconnect();}catch{this.schedule(r);}}},xt=class{#e;#r;#t;#o;constructor(r={}){this.#e=r.heartbeat;}connect(r){if(this.#r?.readyState===WebSocket.OPEN)return Promise.resolve({reusedOpenSocket:true});if(this.#i(),this.#t!==void 0)return this.#t;let o=this.#n(r).then(()=>({reusedOpenSocket:false})).catch(n=>{throw this.#t===o&&(this.#t=void 0),n});return this.#t=o,o}send(r){return this.#s(JSON.stringify(r))}#s(r){return this.#r?.readyState!==WebSocket.OPEN?false:(this.#r.send(r),true)}async close(){let r=await this.#u();this.#c(),!(r===void 0||r.readyState===WebSocket.CLOSED)&&await new Promise(t=>{r.addEventListener("close",()=>t(),{once:true}),r.readyState!==WebSocket.CLOSING&&r.close();});}async#n(r){let t=await r.prepare?.();return new Promise((o,n)=>{let s=$y(r.url,r.headers),i=()=>{s.removeEventListener("error",f),this.#a(s),this.#p(),r.onOpen(t),o(s);},f=P=>{s.removeEventListener("open",i),n(new c(`WebSocket connection failed: ${r.url}`,{cause:P}));};s.addEventListener("open",i,{once:true}),s.addEventListener("error",f,{once:true}),s.addEventListener("message",P=>{if(this.#r!==s)return;let C=String(P.data);if(this.#e?.handleMessage(C))return;let I;try{I=JSON.parse(C);}catch{return}r.onMessage(I);}),s.addEventListener("close",P=>{this.#r===s&&(this.#i(),r.onConnectionLost({code:P.code||1005,reason:P.reason??""}));}),s.addEventListener("error",()=>r.onError());})}#a(r){this.#r=r,this.#t=void 0;}#i(){this.#c(),this.#r=void 0;}#p(){this.#c();let r=this.#e;r!==void 0&&(r.start(t=>this.#s(t)),this.#o=setNonBlockingInterval(()=>{if(!r.isStale(Date.now()))return;let t=this.#r;t?.readyState===WebSocket.OPEN&&t.close();},Ny));}#c(){this.#o!==void 0&&(clearInterval(this.#o),this.#o=void 0),this.#e?.stop();}async#u(){let r=this.#r,t=this.#t;return this.#r=void 0,this.#t=void 0,r!==void 0?r:t?.then(()=>this.#r,()=>{})}};function $y(e,r){if(r===void 0)return new WebSocket(e);try{let t=Reflect.construct(WebSocket,[e,{headers:r}]);if(t instanceof WebSocket)return t}catch(t){throw new c("WebSocket headers require a header-capable WebSocket implementation.",{cause:t})}throw new c("WebSocket headers require a header-capable WebSocket implementation.")}function Vy(e,r){let t=Math.min(r.baseMs*2**e,r.maxMs);return Math.random()*t}var Ct=1440*60*1e3,Ci=90*Ct,ae=z.number().int().nonnegative(),Ko=z.object({start:ae.optional(),end:ae.optional()}),Ii=z.object({interval:PerpsPnlIntervalSchema,start:ae,end:ae.optional()}),fP=z.enum(["perpsFundingPayments","perpsDeposits","perpsWithdrawals"]),yP=z.enum(["perpsEquityHistory","perpsPnlHistory"]),Go=z.object({kind:fP,startTimestamp:ae,endTimestamp:ae,instrumentId:PerpsInstrumentIdSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional(),seenKeys:z.array(z.string())}),bi=z.object({kind:yP,startTimestamp:ae,endTimestamp:ae,interval:PerpsPnlIntervalSchema});async function vi(e){return await unwrap(e.get("/v1/account/balances").andThen(y(FetchPerpsBalancesResponseSchema)))}async function qi(e){return await unwrap(e.get("/v1/account/portfolio").andThen(y(FetchPerpsPortfolioResponseSchema)))}async function ki(e){return await unwrap(e.get("/v1/account/stats").andThen(y(FetchPerpsAccountStatsResponseSchema)))}async function Ai(e){return await unwrap(e.get("/v1/account/auto-cancel").andThen(y(FetchPerpsAutoCancelStatusResponseSchema)))}var PP=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function Oi(e,r){let t=l(r,PP);return await unwrap(e.get("/v1/account/config",{params:fe(t)}).andThen(y(FetchPerpsAccountConfigResponseSchema)))}var gP=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function wi(e,r){let t=l(r,gP);return await unwrap(e.get("/v1/account/open-orders",{params:fe(t)}).andThen(y(FetchPerpsOpenOrdersResponseSchema)))}var RP=z.object({orderId:PerpsOrderIdSchema.optional(),clientOrderId:PerpsClientOrderIdSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional(),start:ae.optional(),end:ae.optional()}).default({}),EP=RP.transform(({end:e,start:r,...t})=>({...t,endTimestamp:e,startTimestamp:r}));async function Li(e,r){let t=l(r,EP);return await unwrap(e.get("/v1/account/orders",{params:fe(t)}).andThen(y(FetchPerpsOrdersResponseSchema)))}var SP=z.object({start:ae.optional(),end:ae.optional(),sort:PerpsSortDirectionSchema.optional(),cursor:PaginationCursorSchema.optional()});function Fi(e,r={}){let t=l(r,SP);return x(o=>e.get("/v1/account/fills",{params:fe({startTimestamp:t.start,endTimestamp:t.end,sort:t.sort,cursor:o??t.cursor})}).andThen(y(ListPerpsFillsResponseSchema)).map(n=>{let s=n.data.at(-1);return !n.more||s===void 0?{items:n.data,hasMore:false}:{items:n.data,hasMore:true,nextCursor:toPaginationCursor(String(s.tradeId))}}),t.cursor)}var hP=Ko.extend({cursor:PaginationCursorSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional()}),TP=z.object({cursor:PaginationCursorSchema}),xP=z.union([hP.transform(({cursor:e,...r})=>({cursor:e,params:$o(r,Ct)})),TP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Mi(e,r={}){let{cursor:t,params:o}=l(r,xP);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps funding payment params."),s={kind:"perpsFundingPayments",seenKeys:[],...o}):s=cr(n,Go);let{kind:i,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/funding",{params:fe(P)}).andThen(y(ListPerpsFundingPaymentsResponseSchema)).map(I=>{let z=I.data.filter(M=>!C.has(`${M.instrumentId}:${M.timestamp}:${M.funding}`));return Vo({getKey:M=>`${M.instrumentId}:${M.timestamp}:${M.funding}`,getTimestamp:M=>M.timestamp,items:z,responseData:I.data,responseMore:I.more,state:s})})},t)}var CP=Ko.extend({cursor:PaginationCursorSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),hash:TxHashSchema.optional()}),IP=z.object({cursor:PaginationCursorSchema}),bP=z.union([CP.transform(({cursor:e,...r})=>({cursor:e,params:$o(r,Ci)})),IP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Bi(e,r={}){let{cursor:t,params:o}=l(r,bP);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps deposit params."),s={kind:"perpsDeposits",seenKeys:[],...o}):s=cr(n,Go);let{kind:i,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/deposits",{params:fe(P)}).andThen(y(ListPerpsDepositsResponseSchema)).map(I=>{let z=I.data.filter(M=>!C.has(M.hash));return Vo({getKey:M=>M.hash,getTimestamp:NP,items:z,responseData:I.data,responseMore:I.more,state:s})})},t)}var vP=Ko.extend({cursor:PaginationCursorSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional()}),qP=z.object({cursor:PaginationCursorSchema}),kP=z.union([vP.transform(({cursor:e,...r})=>({cursor:e,params:$o(r,Ci)})),qP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Ui(e,r={}){let{cursor:t,params:o}=l(r,kP);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps withdrawal params."),s={kind:"perpsWithdrawals",seenKeys:[],...o}):s=cr(n,Go);let{kind:i,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/withdrawals",{params:fe(P)}).andThen(y(ListPerpsWithdrawalsResponseSchema)).map(I=>{let z=I.data.filter(M=>!C.has(String(M.withdrawalId)));return Vo({getKey:M=>String(M.withdrawalId),getTimestamp:KP,items:z,responseData:I.data,responseMore:I.more,state:s})})},t)}var AP=Ii.extend({cursor:PaginationCursorSchema.optional()}),OP=z.object({cursor:PaginationCursorSchema}),wP=z.union([AP.transform(({cursor:e,...r})=>({cursor:e,params:Hi(r)})),OP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Di(e,r){let{cursor:t,params:o}=l(r,wP);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps equity history params."),s={kind:"perpsEquityHistory",...o}):s=cr(n,bi);let{kind:i,...f}=s;return e.get("/v1/account/equity",{params:fe(f)}).andThen(y(ListPerpsEquityHistoryResponseSchema)).map(P=>{let C=P.data.at(-1),I=P.more&&C!==void 0&&C.timestamp<s.endTimestamp;return {items:P.data,hasMore:I,nextCursor:I?It({...s,startTimestamp:C.timestamp+Ni(s.interval)}):void 0}})},t)}var LP=Ii.extend({cursor:PaginationCursorSchema.optional()}),FP=z.object({cursor:PaginationCursorSchema}),MP=z.union([LP.transform(({cursor:e,...r})=>({cursor:e,params:Hi(r)})),FP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function _i(e,r){let{cursor:t,params:o}=l(r,MP);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps PnL history params."),s={kind:"perpsPnlHistory",...o}):s=cr(n,bi);let{kind:i,...f}=s;return e.get("/v1/account/pnl",{params:fe(f)}).andThen(y(ListPerpsPnlHistoryResponseSchema)).map(P=>{let C=P.data.at(-1),I=P.more&&C!==void 0&&C.timestamp<s.endTimestamp;return {items:P.data,hasMore:I,nextCursor:I?It({...s,startTimestamp:C.timestamp+Ni(s.interval)}):void 0}})},t)}var BP=z.object({kind:z.literal("perpsNotifications"),cursor:z.string().min(1),sinceSeq:z.number().int().nonnegative().optional(),limit:z.number().int().positive().optional()}),UP=z.object({sinceSeq:z.number().int().nonnegative().optional(),limit:z.number().int().positive().optional(),cursor:PaginationCursorSchema.optional()}),DP=z.object({cursor:PaginationCursorSchema}),_P=z.union([UP.transform(({cursor:e,...r})=>({cursor:e,params:r})),DP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function zi(e,r={}){let{cursor:t,params:o}=l(r,_P);return x(n=>{let s;n===void 0?invariant(o!==void 0,"Expected initial Perps notifications params."):s=cr(n,BP);let i=s===void 0?o?.sinceSeq:s.sinceSeq,f=s===void 0?o?.limit:s.limit;return e.get("/v1/account/notifications",{params:fe({cursor:s?.cursor,limit:f,sinceSeq:i})}).andThen(y(ListPerpsNotificationsResponseSchema)).map(P=>{let C=P.has_more&&P.next_cursor!==null;return {items:P.items,hasMore:C,nextCursor:C&&P.next_cursor!==null?It({kind:"perpsNotifications",cursor:P.next_cursor,limit:f,sinceSeq:i}):void 0}})},t)}async function Wi(e){return (await unwrap(e.get("/v1/account/notifications",{params:fe({limit:1})}).andThen(y(FetchPerpsUnreadNotificationsCountResponseSchema)))).unread}var zP=z.object({ids:z.array(z.string().min(1)).min(1)}),WP=z.object({upTo:z.object({id:z.string().min(1),timestamp:z.number().int().nonnegative()})}),jP=z.union([zP.transform(({ids:e})=>({ids:e})),WP.transform(({upTo:e})=>({before:HP(e)}))]);async function ji(e,r){let t=l(r,jP),o=await unwrap(e.post("/v1/account/notifications/read",{json:t}).andThen(y(MarkPerpsNotificationsReadResponseSchema)));if(o.status==="err")throw new g(o.error??"Perps notifications read request was rejected.",{status:200})}function HP(e){return btoa(JSON.stringify({ts:e.timestamp,id:e.id})).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function $o(e,r){let t=Date.now(),{end:o,start:n,...s}=e;return {...s,endTimestamp:o??t,startTimestamp:n??t-r}}function Hi(e){return {endTimestamp:e.end??Date.now(),interval:e.interval,startTimestamp:e.start}}function cr(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps account pagination cursor",{cause:t})}}function It(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function fe(e){return h(e,T())}function NP(e){return e.confirmedTimestamp??e.createdTimestamp}function KP(e){return e.confirmedTimestamp??e.createdTimestamp}function Vo(e){let r=e.responseData.at(-1),t=e.items.at(-1),o=(t===void 0?void 0:e.getTimestamp(t))??(r===void 0?void 0:e.getTimestamp(r)),n=e.responseMore&&o!==void 0&&o>e.state.startTimestamp;if(!n)return {items:e.items,hasMore:n};let s=t===void 0?o-1:o,i=new Set(e.state.endTimestamp===s?e.state.seenKeys:[]);for(let f of e.items)e.getTimestamp(f)===s&&i.add(e.getKey(f));return {items:e.items,hasMore:n,nextCursor:It({...e.state,endTimestamp:s,seenKeys:Array.from(i)})}}function Ni(e){switch(e){case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return Ct;case "1w":return 7*Ct}invariant(false,`Unsupported Perps account history interval: ${String(e)}`);}var Zo=z.object({instrumentId:PerpsInstrumentIdSchema,side:OrderSideSchema,quantity:PerpsDecimalInputSchema,reduceOnly:z.boolean().default(false),clientOrderId:PerpsClientOrderIdSchema.optional()}),ZP=Zo.extend({price:PerpsDecimalInputSchema,timeInForce:z.literal(PerpsTimeInForce.GTC),postOnly:z.boolean().default(false)}),JP=Zo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z.literal(PerpsTimeInForce.IOC),postOnly:z.never().optional()}),XP=Zo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z.literal(PerpsTimeInForce.FOK),postOnly:z.never().optional()}),Jo=z.discriminatedUnion("timeInForce",[ZP,JP,XP]),bt=z.object({triggerPrice:PerpsDecimalInputSchema,limitPrice:PerpsDecimalInputSchema.optional()}),vt=z.object({triggerPrice:PerpsDecimalInputSchema}),eg=z.union([z.object({takeProfit:bt,stopLoss:bt.optional()}),z.object({takeProfit:bt.optional(),stopLoss:bt})]),rg=z.object({orders:z.array(Jo).min(1),expiresAt:z.number().int().positive().optional()});async function Zi(e,r){let t=l(r,rg);return await e.executeCommand({op:["createOrders",t.orders.map(Xo)],expiresAt:t.expiresAt},z.array(PerpsPostOrderAckSchema))}var tg=z.intersection(Jo,z.intersection(eg,z.object({clientOrderId:PerpsClientOrderIdSchema.default(dp),expiresAt:z.number().int().positive().optional()}))),og=z.intersection(Jo,z.object({clientOrderId:PerpsClientOrderIdSchema.default(dp),expiresAt:z.number().int().positive().optional(),takeProfit:z.never().optional(),stopLoss:z.never().optional()})),Ji=z.array(PerpsPostOrderAckSchema).min(1).refine(e=>e.every(r=>r.status==="ok"),"Expected successful Perps order acknowledgements.");function ng(e){return e.takeProfit!==void 0||e.stopLoss!==void 0}async function Xi(e,r){if(ng(r))return await sg(e,r);let t=l(r,og),[,o]=await e.executeCommandWithEvent({op:["createOrders",[Xo(t)]],expiresAt:t.expiresAt},Ji,up(t.clientOrderId));return {order:o.payload}}async function sg(e,r){let t=l(r,tg),o=[Xo(t)],n=t.side===OrderSide.SELL;t.takeProfit!==void 0&&o.push(Ot({buy:n,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:toDecimalString(t.quantity),trigger:t.takeProfit})),t.stopLoss!==void 0&&o.push(Ot({buy:n,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:toDecimalString(t.quantity),trigger:t.stopLoss}));let[s,i]=await e.executeCommandWithEvent({op:["createOrders",o,PerpsTpSlScope.Order],expiresAt:t.expiresAt},Ji,up(t.clientOrderId)),f=1,P={};return t.takeProfit!==void 0&&(P.takeProfit=At(expectPresent(s[f++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(P.stopLoss=At(expectPresent(s[f],"Expected Perps stop-loss acknowledgement."))),{order:i.payload,tpSl:P}}var ag=z.union([z.object({takeProfit:vt,stopLoss:vt.optional()}),z.object({takeProfit:vt.optional(),stopLoss:vt})]),ig=z.intersection(ag,z.object({instrumentId:PerpsInstrumentIdSchema,expiresAt:z.number().int().positive().optional()}));async function ep(e,r){let t=l(r,ig),o=gg(await e.fetchPortfolio(),t.instrumentId),n=[];t.takeProfit!==void 0&&n.push(Ot({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:"0",trigger:t.takeProfit})),t.stopLoss!==void 0&&n.push(Ot({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:"0",trigger:t.stopLoss}));let s=await e.executeCommand({op:["createOrders",n,PerpsTpSlScope.Position],expiresAt:t.expiresAt},z.array(PerpsPostOrderAckSchema));for(let P of s)if(P.status==="err")throw new g(P.error,{status:200});let i=0,f={};return t.takeProfit!==void 0&&(f.takeProfit=At(expectPresent(s[i++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(f.stopLoss=At(expectPresent(s[i],"Expected Perps stop-loss acknowledgement."))),{tpSl:f}}var pg=z.union([z.object({orderId:PerpsOrderIdSchema,clientOrderId:z.undefined().optional(),expiresAt:z.number().int().positive().optional()}),z.object({clientOrderId:PerpsClientOrderIdSchema,orderId:z.undefined().optional(),expiresAt:z.number().int().positive().optional()})]);async function rp(e,r){let t=l(r,pg),[o]=t.orderId!==void 0?await kt(e,{orderIds:[t.orderId],expiresAt:t.expiresAt}):await kt(e,{clientOrderIds:[t.clientOrderId],expiresAt:t.expiresAt});return expectPresent(o,"Expected Perps cancel order result.")}var cg=z.union([z.object({orderIds:z.array(PerpsOrderIdSchema).min(1),clientOrderIds:z.undefined().optional(),expiresAt:z.number().int().positive().optional()}),z.object({clientOrderIds:z.array(PerpsClientOrderIdSchema).min(1),orderIds:z.undefined().optional(),expiresAt:z.number().int().positive().optional()})]);async function kt(e,r){let t=l(r,cg);return t.orderIds!==void 0?await e.executeCommand({op:["cancelOrders",t.orderIds],expiresAt:t.expiresAt},z.array(PerpsCancelOrderResultSchema)):await e.executeCommand({op:["cancelOrdersCOID",t.clientOrderIds],expiresAt:t.expiresAt},z.array(PerpsCancelOrderResultSchema))}var dg=z.object({instrumentId:PerpsInstrumentIdSchema.optional(),expiresAt:z.number().int().positive().optional()}).default({});async function tp(e,r){let t=l(r,dg),o=["cancelAll",t.instrumentId===void 0?[]:[t.instrumentId]];await e.executeDeleteCommand({path:"/v1/trade/orders/all",op:o,responseSchema:PerpsCancelAllOrdersResponseSchema,expiresAt:t.expiresAt});}var ug=5e3,lg=z.object({cancelAt:z.number().int().positive(),expiresAt:z.number().int().positive().optional()}).superRefine((e,r)=>{let t=Date.now()+ug;e.cancelAt<t&&r.addIssue({code:"custom",message:"cancelAt must be at least 5 seconds in the future.",path:["cancelAt"]});}),op=o(m,h$1,g,n,c,b,a),mg="auto_cancel_daily_limit_reached";async function np(e,r,t){let o=l(t,lg),n=["autoCancel",[o.cancelAt]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:Fr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)).mapErr(i=>i instanceof g&&i.message.startsWith(`${mg} (`)?new m("Auto-cancel daily trigger limit reached.",{cause:i}):i));}var fg=z.object({expiresAt:z.number().int().positive().optional()}).default({});async function sp(e,r,t){let o=l(t,fg),n=["autoCancel",[0]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:Fr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)));}var yg=z.object({instrumentId:PerpsInstrumentIdSchema,leverage:z.number().int().positive(),crossMargin:z.boolean()}),ap=o(g,n,c,a);async function ip(e,r){let t=l(r,yg);return await e.executeCommand({op:["updateLeverage",[t.instrumentId,t.leverage,t.crossMargin]]},PerpsUpdateLeverageResultSchema)}var Pg=z.object({instrumentId:PerpsInstrumentIdSchema,amount:PerpsDecimalInputSchema}),pp=o(g,n,c,a);async function cp(e,r){let t=l(r,Pg),o=toDecimalString(t.amount),n=await e.executeCommand({op:["updateMargin",[t.instrumentId,o]]},PerpsCommandAckSchema);if(n.status==="err")throw new g(n.error,{status:200})}function dp(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));return PerpsClientOrderIdSchema.parse(Array.from(e,r=>r.toString(16).padStart(2,"0")).join(""))}function up(e){return r=>r.type==="order"&&r.payload.clientOrderId===e}function At(e){if(e.status==="err")throw new g(e.error,{status:200});return {orderId:e.orderId}}function gg(e,r){let t=e.positions.find(n=>n.instrumentId===r),o=t===void 0?0:Rg(t.size);if(o===0)throw new a(`No open Perps position for instrument ${r}.`);return o<0}function Rg(e){let r=e.trim(),t=r.replace(/^[+-]/,"").replace(".","");return /^0*$/.test(t)?0:r.startsWith("-")?-1:1}function Xo(e){return [e.instrumentId,e.side===OrderSide.BUY,e.price===void 0?void 0:toDecimalString(e.price),toDecimalString(e.quantity),e.timeInForce,e.postOnly??false,e.reduceOnly===true?true:void 0,e.clientOrderId,void 0]}function Ot(e){return [e.instrumentId,e.buy,e.trigger.limitPrice===void 0?void 0:toDecimalString(e.trigger.limitPrice),e.quantity,void 0,false,true,void 0,[e.trigger.limitPrice===void 0?true:void 0,toDecimalString(e.trigger.triggerPrice),e.kind]]}function Fr(e){let[r,t,o]=e;switch(r){case "createOrders":return hg({args:t.map(Eg),type:r},o);case "cancelOrders":case "cancelOrdersCOID":return {type:r,args:t};case "autoCancel":{let[n]=t;return {type:r,args:{time:n}}}case "cancelAll":{let[n]=t;return {type:r,args:n===void 0?{}:{iid:n}}}case "updateLeverage":{let[n,s,i]=t;return {type:r,args:{cross:i,iid:n,lev:s}}}case "updateMargin":{let[n,s]=t;return {type:r,args:{amt:s,iid:n}}}default:invariant(false,`Unsupported Perps command: ${String(r)}`);}}function Eg(e){let r={iid:e[0],buy:e[1],po:e[5],qty:e[3]};return e[4]!==void 0&&(r.tif=e[4]),e[6]&&(r.ro=e[6]),e[2]!==void 0&&(r.p=e[2]),e[7]!==void 0&&(r.c=e[7]),e[8]!==void 0&&(r.tr=Sg(e[8])),r}function Sg(e){let r={tpsl:e[2],trp:e[1]};return e[0]!==void 0&&(r.market=e[0]),r}function hg(e,r){return r!==void 0&&(e.grp=r),e}var vg=3e4,fp=3e4,qg=2e3,kg=["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications","tpsl"],Ag=new Set(["notifications"]),Og=z.object({id:z.number().int().positive().optional(),data:z.unknown().optional()}).passthrough(),yp=z.union([PerpsCommandAckSchema,z.array(PerpsCommandAckSchema)]).transform(e=>Array.isArray(e)?e.find(r=>r.status==="err")??e[0]:e),Pp=class{credentials;#e;#r;#t;#o;#s;#n=new xt({heartbeat:new ht});#a=pushable({objectMode:true});#i=new Map;#p=new Set;#c=new Tt;#u=new Map;#l=1;#d;constructor(r){this.#e=new St({headers:r.headers,resolveHeaders:async()=>this.#T(),root:r.restUrl}),this.#r=r.chainId,this.credentials=r.credentials,this.#t=r.headers,this.#o=r.onClose,this.#s=r.wsUrl;}get closed(){return this.#d!==void 0}async connect(){await this.#m(false);}async close(){this.#d===void 0&&(this.#d=this.#x()),await this.#d;}[Symbol.asyncIterator](){return this.#a[Symbol.asyncIterator]()}async fetchBalances(){return await vi(this.#e)}async fetchPortfolio(){return await qi(this.#e)}async fetchStats(){return await ki(this.#e)}async fetchAccountConfig(r){return await Oi(this.#e,r)}async fetchAutoCancelStatus(){return await Ai(this.#e)}async fetchOpenOrders(r){return await wi(this.#e,r)}async fetchOrders(r){return await Li(this.#e,r)}listFills(r={}){return Fi(this.#e,r)}listFundingPayments(r={}){return Mi(this.#e,r)}listDeposits(r={}){return Bi(this.#e,r)}listWithdrawals(r={}){return Ui(this.#e,r)}listEquityHistory(r){return Di(this.#e,r)}listPnlHistory(r){return _i(this.#e,r)}listNotifications(r={}){return zi(this.#e,r)}async fetchUnreadNotificationsCount(){return await Wi(this.#e)}async markNotificationsRead(r){await ji(this.#e,r);}async placeOrder(r){return await Xi(this,r)}async postOrders(r){return await Zi(this,r)}async placePositionTpSl(r){return await ep(this,r)}async cancelOrder(r){return await rp(this,r)}async cancelOrders(r){return await kt(this,r)}async cancelAllOrders(r){await tp(this,r);}async armAutoCancel(r){await np(this.#e,(t,o)=>this.#f(t,o),r);}async disarmAutoCancel(r){await sp(this.#e,(t,o)=>this.#f(t,o),r);}async updateLeverage(r){return await ip(this,r)}async updateMargin(r){await cp(this,r);}async#m(r){await this.#n.connect({onConnectionLost:()=>this.#b(),onError:()=>{},onMessage:t=>this.#C(t),onOpen:()=>{},headers:this.#t,url:this.#s}),await this.#S(),await this.#h(),this.#c.resetBackoff(),r&&(this.#u.clear(),this.#a.push({reason:"reconnect",type:"resync"}));}async#S(){await this.#P({id:this.#l++,op:{args:{proxy:this.credentials.proxy,secret:this.credentials.secret},type:"auth"},req:"post"},yp,vg,"Perps session authentication timed out.");}async#h(){await this.#P({id:this.#l++,req:"sub",chs:kg},yp,fp,"Perps session subscription timed out.");}#T(){return {"POLYMARKET-PROXY":this.credentials.proxy,"POLYMARKET-SECRET":this.credentials.secret}}async executeCommand(r,t){let o=Fr(r.op),n=this.#f(r.op,r.expiresAt);return await this.#P({...n,id:this.#l++,op:o,req:"post"},t,fp,"Perps command response timed out.")}async executeCommandWithEvent(r,t,o){let n=this.#q(o),s=this.executeCommand(r,t);s.then(()=>this.#k(n,qg),()=>{});try{let[i,f]=await Promise.all([s,n.promise]);return [i,f]}finally{this.#y(n);}}async executeDeleteCommand(r){let t=this.#f(r.op,r.expiresAt);return await unwrap(this.#e.del(r.path,{json:{...t,op:Fr(r.op)}}).andThen(y(r.responseSchema)))}#f(r,t){let o=Fg(),n$1=Date.now(),s;try{s=mi({chainId:this.#r,op:r,privateKey:this.credentials.privateKey,salt:o,timestamp:n$1});}catch(f){throw n.fromError(f,"Could not sign the Perps session command")}let i={salt:o,sig:s,ts:n$1};return t!==void 0&&(i.exp=t),i}async#P(r,t,o,n){let s=wg(t);this.#i.set(r.id,s);let i=setNonBlockingTimeout(()=>{s.reject(new c(n));},o);try{if(!this.#n.send(r))throw new c("Perps session transport is not open.");return await s.promise}finally{clearTimeout(i),this.#i.delete(r.id);}}async#x(){this.#c.stop(),this.#g(new c("Perps session closed.")),this.#E(new c("Perps session closed.")),this.#a.end(),await this.#n.close(),this.#o(this);}#C(r){if(this.#I(r)||PerpsNotificationsResyncFrameSchema.safeParse(r).success)return;let t=PerpsSessionUpdateEventSchema.safeParse(r);if(!t.success)return;let o=t.data;this.#v(o),this.#R(o);}#I(r){let t=Og.safeParse(r);if(!t.success||t.data.id===void 0)return false;let o=this.#i.get(t.data.id);if(o===void 0)return true;let n=o.schema.safeParse(t.data.data);if(!n.success){let s=en(t.data.data??t.data);return s!==void 0?o.reject(new g(s.error,{status:200})):o.reject(new c("Perps session unexpected response.")),true}return Lg(n.data)?o.reject(new g(n.data.error,{status:200})):o.resolve(n.data),true}#b(){this.#g(new c("Perps session connection closed.")),this.#E(new c("Perps session connection closed.")),this.#d===void 0&&this.#c.schedule({reconnect:()=>this.#m(true),shouldReconnect:()=>this.#d===void 0});}#g(r){for(let t of this.#i.values())t.reject(r);this.#i.clear();}#v(r){if(Ag.has(r.channel))return;let t=this.#u.get(r.channel);this.#u.set(r.channel,r.sequence),!(t===void 0||r.sequence===t+1)&&this.#R({channel:r.channel,previousSequence:t,reason:"sequence_gap",sequence:r.sequence,type:"resync"});}#R(r){this.#A(r),this.#a.push(r);}#q(r){let t,o,s={promise:new Promise((i,f)=>{t=i,o=f;}),predicate:r,reject:o,resolve:t};return this.#p.add(s),s}#k(r,t){this.#p.has(r)&&(r.timeout=setNonBlockingTimeout(()=>{this.#y(r),r.reject(new i("Perps event wait timed out."));},t));}#A(r){for(let t of Array.from(this.#p))t.predicate(r)&&(this.#y(t),t.resolve(r));}#y(r){this.#p.delete(r)&&r.timeout!==void 0&&clearTimeout(r.timeout);}#E(r){for(let t of Array.from(this.#p))this.#y(t),t.reject(r);}};function wg(e){let r,t;return {promise:new Promise((n,s)=>{r=n,t=s;}),reject:t,resolve:r,schema:e}}function Lg(e){return Array.isArray(e)?false:en(e)!==void 0}function en(e){if(Array.isArray(e)){for(let t of e){let o=en(t);if(o!==void 0)return o}return}if(typeof e!="object"||e===null)return;let r=e;if(r.status==="err")return {error:typeof r.error=="string"?r.error:"Perps command failed."}}function Fg(){let[e]=globalThis.crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var Ze=o(h$1,g,c,b,a),he=z.number().int().nonnegative(),Ep=1440*60*1e3,eR=z.object({instrumentId:PerpsInstrumentIdSchema.optional(),category:PerpsInstrumentCategorySchema.optional()}).default({}),TO=Ze;async function xO(e,r){let t=l(r,eR);return unwrap(e.perps.get("/v1/info/instruments",{params:h(t,T())}).andThen(y(FetchPerpsInstrumentsResponseSchema)))}var rR=z.object({instrumentId:PerpsInstrumentIdSchema}),CO=Ze;async function IO(e,r){let t=l(r,rR),[o]=await oR(e,t);if(o===void 0)throw new b(`Perps ticker ${t.instrumentId} was not returned by the API`);return o}var tR=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({}),bO=Ze;async function oR(e,r){let t=l(r,tR),o=h(t,T()),[n,s]=await Promise.all([unwrap(e.perps.get("/v1/info/tickers",{params:o}).andThen(y(FetchPerpsTickersResponseSchema))),unwrap(e.perps.get("/v1/info/statistics",{params:o}).andThen(y(FetchPerpsStatisticsResponseSchema)))]),i=new Map(s.map(f=>[f.instrumentId,f]));return n.map(f=>{let P=i.get(f.instrumentId);return {...f,openPrice:P?.openPrice,volume24h:P?.volume}})}var nR=z.union([z.literal(10),z.literal(100),z.literal(500),z.literal(1e3)]),sR=z.object({instrumentId:PerpsInstrumentIdSchema,depth:nR.default(100)}),vO=Ze;async function qO(e,r){let t=l(r,sR);return unwrap(e.perps.get("/v1/info/book",{params:h(t,T())}).andThen(y(PerpsBookSchema)))}var aR=z.object({instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,start:he.optional(),end:he.optional(),cursor:PaginationCursorSchema.optional()}),iR=z.object({cursor:PaginationCursorSchema}),pR=z.union([aR.transform(({cursor:e,...r})=>({cursor:e,params:RR(r)})),iR.transform(({cursor:e})=>({cursor:e,params:void 0}))]),kO=Ze;function AO(e,r){let{cursor:t,params:o}=l(r,pR);return x(n=>{let s=n===void 0?ER(o):TR(n);return e.perps.get("/v1/info/klines",{params:h({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,interval:s.interval,startTimestamp:s.startTimestamp},T())}).andThen(y(FetchPerpsCandlesResponseSchema)).map(i=>{let f=i.data.at(-1),P=i.more&&f!==void 0;return {items:i.data,hasMore:P,nextCursor:P?nn({...s,startTimestamp:f.timestamp+IR(s.interval)}):void 0}})},t)}var Sp=z.object({instrumentId:PerpsInstrumentIdSchema,start:he.optional(),end:he.optional()}),cR=Sp.extend({cursor:PaginationCursorSchema.optional()}),dR=z.object({cursor:PaginationCursorSchema}),uR=z.union([cR.transform(({cursor:e,...r})=>({cursor:e,params:hp(r)})),dR.transform(({cursor:e})=>({cursor:e,params:void 0}))]),lR=Sp.extend({cursor:PaginationCursorSchema.optional()}),mR=z.object({cursor:PaginationCursorSchema}),OO=Ze;function wO(e,r){let{cursor:t,params:o}=l(r,uR);return x(n=>{let s=n===void 0?SR(o):xR(n);return e.perps.get("/v1/info/funding",{params:h({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},T())}).andThen(y(FetchPerpsFundingHistoryResponseSchema)).map(i=>{let f=i.data.at(-1),P=i.more&&f!==void 0&&f.timestamp>s.startTimestamp;return {items:i.data,hasMore:P,nextCursor:P?nn({...s,endTimestamp:f.timestamp-1}):void 0}})},t)}var fR=z.union([lR.transform(({cursor:e,...r})=>({cursor:e,params:hp(r)})),mR.transform(({cursor:e})=>({cursor:e,params:void 0}))]),LO=Ze;function FO(e,r){let{cursor:t,params:o}=l(r,fR);return x(n=>{let s=n===void 0?hR(o):CR(n),i=new Set(s.seenTradeIds);return e.perps.get("/v1/info/trades",{params:h({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},T())}).andThen(y(FetchPerpsTradesResponseSchema)).map(f=>{let P=f.data.filter(gc=>!i.has(gc.tradeId)),C=f.data.at(-1),I=P.at(-1),z=I?.timestamp??C?.timestamp,M=f.more&&z!==void 0&&z>s.startTimestamp;return {items:P,hasMore:M,nextCursor:M?nn({...s,endTimestamp:I===void 0?z-1:z,seenTradeIds:I===void 0?[]:bR(s,P,I)}):void 0}})},t)}var MO=o(h$1,g,c,b);async function BO(e){return (await unwrap(e.perps.get("/v1/info/fees").andThen(y(FetchPerpsFeesResponseSchema)))).feeSchedule}var yR=z.object({kind:z.literal("perpsCandles"),instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,startTimestamp:he,endTimestamp:he}),PR=z.object({kind:z.literal("perpsFundingHistory"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:he,endTimestamp:he}),gR=z.object({kind:z.literal("perpsTrades"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:he,endTimestamp:he,seenTradeIds:z.array(PerpsTradeIdSchema)});function RR(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,interval:e.interval,startTimestamp:e.start??r-Ep}}function hp(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,startTimestamp:e.start??r-Ep}}function ER(e){return invariant(e!==void 0,"Expected initial Perps candles params."),{kind:"perpsCandles",...e}}function SR(e){return invariant(e!==void 0,"Expected initial Perps funding params."),{kind:"perpsFundingHistory",...e}}function hR(e){return invariant(e!==void 0,"Expected initial Perps trades params."),{kind:"perpsTrades",seenTradeIds:[],...e}}function TR(e){return on(e,yR)}function xR(e){return on(e,PR)}function CR(e){return on(e,gR)}function on(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps pagination cursor",{cause:t})}}function nn(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function IR(e){switch(e){case "1s":return 1e3;case "1m":return 60*1e3;case "5m":return 300*1e3;case "15m":return 900*1e3;case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return 1440*60*1e3;case "1w":return 10080*60*1e3}invariant(false,`Unsupported Perps kline interval: ${String(e)}`);}function bR(e,r,t){let o=new Set(e.endTimestamp===t.timestamp?e.seenTradeIds:[]);for(let n of r)n.timestamp===t.timestamp&&o.add(n.tradeId);return Array.from(o)}var vR=z.custom(e=>isPrivateKey(e),"Expected a hex-encoded 32-byte private key."),qR=z.object({proxy:z.string().transform(e=>expectEvmAddress(e)),privateKey:vR,secret:z.string().min(1),expiresAt:z.number().int().positive()}),kR=10080*60*1e3,AR=z.strictObject({expiresIn:z.number().int().positive().default(kR),label:z.string().min(1).optional()}),OR=z.strictObject({credentials:qR}),wR=z.union([AR,OR]),LR=z.object({proxy:z.string()}),FR=LR.transform(e=>({proxy:expectEvmAddress(e.proxy)})),Tp=z.bigint().positive().max(ee),MR=z.object({amount:Tp,metadata:$.optional()}),BR=z.object({amount:Tp}),UO=o(h$1,g,n,c,b,a),DO=o(h$1,g,n,c,b,a),_O=o(a),zO=o(k$1,h$1,g,n,c,b,a),WO=o(h$1,g,n,c,b,a);async function jO(e,r={}){let t=l(r,wR),o="credentials"in t?await _R(e,t.credentials):await DR(e,t);return e.webSockets.perpsSession.connect(o)}async function HO(e,r){let t=l(r,FR),o={type:"deleteProxy",args:{proxy:t.proxy}},n=["deleteProxy",[t.proxy]],s=sn(),i=Date.now(),f=await WR(e,{salt:s,signedOp:n,timestamp:i}),P=await unwrap(e.perps.del("/v1/account/proxy",{json:{op:o,salt:s,sig:f,ts:i}}).andThen(y(PerpsDeleteProxyResponseSchema)));if(P.status==="err")throw new g(P.error??"Perps credentials revocation was rejected.",{status:200})}async function UR(e,r){let t=l(r,MR),{contracts:o}=e.environment,n=gs(o.perpsDepositContract,o.collateralToken,t.amount,e.account.signer);return async function*(){return e.account.walletType===WalletType.EOA?N(yield VR(K(e.environment.chainId,n))):yield*await V(e,{calls:[n],metadata:t.metadata??`Deposit ${t.amount} of ${o.collateralToken} to Perps`})}.call(null)}function NO(e,r){return UR(e,r).then(_(e.signer))}async function KO(e,r){let t=l(r,BR),o=Math.floor(Date.now()/1e3),n=sn(),s={type:"withdraw",args:{account:e.account.signer,token:e.environment.contracts.collateralToken,amount:t.amount.toString(),to:e.account.wallet}},i=await jR(e,{amount:t.amount,salt:n,timestamp:o}),f=await unwrap(e.perps.post("/v1/account/withdraw",{json:{op:s,salt:n,sig:i,ts:o}}).andThen(y(PerpsWithdrawResponseSchema)));if(f.status==="err")throw new g(f.error??"Perps withdrawal was rejected.",{status:200});if(f.withdrawalId===void 0)throw new b("Perps withdrawal response did not include a withdrawal ID.");return f.withdrawalId}async function DR(e,r){let t=KR(),o=Cp(t),n=e.account.signer,s=Date.now()+r.expiresIn,i=Date.now(),f=sn(),P={args:{expiry:s,owner:n,proxy:o},type:"createProxy"},C=await zR(e,{expiresAt:s,proxy:o,salt:f,timestamp:i}),I={op:P,salt:f,sig:C,ts:i};r.label!==void 0&&(I.label=r.label);let z=await unwrap(e.perps.post("/v1/account/proxy",{json:I}).andThen(y(PerpsCreateProxyResponseSchema))),M={expiresAt:s,privateKey:t,proxy:o,secret:z.secret};return xp(e,M)}async function _R(e,r){return GR(r),xp(e,r)}async function xp(e,r){let t=await unwrap(e.perps.get("/v1/account/credentials",{headers:$R(r)}).andThen(y(PerpsCredentialsResponseSchema)));if(!isSameEvmAddress(t.address,e.account.signer))throw new b("Perps credentials belong to a different signer account.");let o=t.keys.find(n=>isSameEvmAddress(n.proxy,r.proxy));if(o===void 0)throw new b("Perps credentials were not returned by the API.");if(o.expiresAt<=Date.now())throw new b("Perps credentials are expired.");return {...r,expiresAt:o.expiresAt}}async function zR(e,r){try{return await e.signer.signTypedData(NR({chainId:e.environment.chainId,...r}))}catch(t){throw n.fromError(t,"Could not sign the Perps proxy credentials request")}}async function WR(e,r){try{return await e.signer.signTypedData(jo({chainId:e.environment.chainId,op:r.signedOp,salt:r.salt,timestamp:r.timestamp}))}catch(t){throw n.fromError(t,"Could not sign the Perps operation request")}}async function jR(e,r){try{return await e.signer.signTypedData(HR({account:e.account.signer,chainId:e.environment.chainId,contract:e.environment.contracts.perpsDepositContract,token:e.environment.contracts.collateralToken,to:e.account.wallet,...r}))}catch(t){throw n.fromError(t,"Could not sign the Perps withdrawal request")}}function HR(e){return {domain:{chainId:e.chainId,name:"Polymarket",verifyingContract:e.contract,version:"1"},message:{account:e.account,amount:e.amount,fee:0n,salt:e.salt,token:e.token,to:e.to,ts:e.timestamp},primaryType:"Withdraw",types:{Withdraw:[{name:"account",type:"address"},{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint256"},{name:"to",type:"address"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}]}}}function NR(e){return {domain:{chainId:e.chainId,name:"Polymarket",version:"1"},message:{addr:e.proxy,exp:e.expiresAt,salt:e.salt,ts:e.timestamp},primaryType:"CreateProxy",types:{CreateProxy:[{name:"addr",type:"address"},{name:"exp",type:"uint64"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}]}}}function KR(){return expectPrivateKey(Secp256k1.randomPrivateKey(),"Generated invalid Perps proxy key.")}function Cp(e){return expectEvmAddress(Address.fromPublicKey(Secp256k1.getPublicKey({privateKey:e})))}function GR(e){let r=Cp(e.privateKey);if(!isSameEvmAddress(r,e.proxy))throw new a("Perps credentials private key does not match the proxy address.")}function $R(e){return {"POLYMARKET-PROXY":e.proxy,"POLYMARKET-SECRET":e.secret}}function VR(e){return {kind:"sendPerpsDepositTransaction",request:e}}function sn(){let[e]=crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var cE=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),user:EvmAddressSchema.optional(),conditionId:z.union([CanonicalMarketConditionIdSchema,ce(CanonicalMarketConditionIdSchema,20)]).optional(),status:PositionStatusSchema.optional(),eventId:z.array(EventIdSchema).min(1).optional(),filterType:PositionFilterTypeSchema.optional(),filterAmount:z.number().min(0).optional(),includeArchived:z.boolean().optional(),sortBy:PositionSortBySchema.optional(),sortDirection:SortDirectionSchema.optional(),window:tr.optional()}).refine(e=>e.user!==void 0||e.conditionId,{message:"Provide user or conditionId",path:["user"]}).refine(e=>e.user!==void 0||!Array.isArray(e.conditionId)||e.conditionId.length===1,{message:"Without user, provide exactly one conditionId",path:["conditionId"]}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}).refine(e=>e.user!==void 0||e.eventId===void 0,{message:"eventId requires user",path:["eventId"]}).refine(e=>!(e.includeArchived&&e.status==="CLOSED"),{message:"includeArchived does not apply to CLOSED positions",path:["includeArchived"]}),nw=o(h$1,g,c,b,a);function sw(e,r){let{cursor:t,pageSize:o,window:n,...s}=l(r,cE);return x(i=>D(()=>e.data.get("/v2/positions",{params:U({...s,...n,limit:o,cursor:i})})).andThen(y(ListPositionsResponseSchema)),t)}var dE=z.union([ComboPositionStatusSchema,z.tuple([ComboPositionStatusSchema],ComboPositionStatusSchema).refine(e=>e.length===1||!e.includes(ComboPositionStatus.Redeemable),{message:"REDEEMABLE must be the sole status value"})]),uE=z.object({cursor:PaginationCursorSchema.optional(),pageSize:k.max(1e3).default(100),user:EvmAddressSchema,conditionId:z.union([ComboConditionIdSchema,ce(ComboConditionIdSchema,20)]).optional(),status:dE.optional(),sortBy:ComboPositionSortBySchema.optional(),sortDirection:SortDirectionSchema.optional(),updatedAfter:_e.optional(),updatedBefore:_e.optional()}),lE=uE.refine(e=>e.updatedBefore===void 0||e.updatedAfter===void 0||e.updatedBefore>=e.updatedAfter,{message:"updatedBefore must not precede updatedAfter",path:["updatedBefore"]}),aw=o(h$1,g,c,b,a);function iw(e,r){let{cursor:t,pageSize:o,...n}=l(r,lE);return x(s=>D(()=>e.data.get("/v2/positions/combos",{params:U({...n,limit:o,cursor:s})})).andThen(y(ListComboPositionsResponseSchema)),t)}var mE=z.object({user:EvmAddressSchema,conditionIds:ce(CanonicalMarketConditionIdSchema,20).optional()}),pw=o(h$1,g,c,b,a);async function cw(e,r){let{conditionIds:t,...o}=l(r,mE);return unwrap(D(()=>e.data.get("/v2/value",{params:U({...o,condition:t})})).andThen(y(FetchPortfolioValueResponseSchema)))}var fE=z.object({user:EvmAddressSchema}),dw=o(h$1,g,c,b,a);async function uw(e,r){let t=l(r,fE);return unwrap(D(()=>e.data.get("/v2/user-stats",{params:U(t)})).andThen(y(FetchUserStatsResponseSchema)))}var yE=z.object({user:EvmAddressSchema,interval:UserPnlIntervalSchema.optional(),fidelity:UserPnlFidelitySchema.optional()}),lw=o(h$1,g,c,b,a);async function mw(e,r){let t=l(r,yE);return unwrap(D(()=>e.data.get("/v2/user-pnl",{params:U(t)})).andThen(y(FetchUserPnlResponseSchema)))}var PE=z.object({user:EvmAddressSchema,window:tr.optional()}),fw=o(h$1,g,c,b,a);async function yw(e,r){let{window:t,...o}=l(r,PE);return unwrap(D(()=>e.data.get("/v2/user-volume",{params:U({...o,...t})})).andThen(y(FetchUserVolumeResponseSchema)))}var gE=z.object({user:z.string()}),Pw=o(h$1,g,c,b,a);async function gw(e,r){let t=l(r,gE);return unwrap(e.data.get("/v1/accounting/snapshot",{params:$n(t)}).andThen(wn))}var qp=o(h$1,g,c,b,a),kp=z.object({amount:z.bigint().min(0n),conditionId:ConditionIdSchema,metadata:$.optional()}),_w=qp;async function Ap(e,r){let t=l(r,kp),o=await fn(e,{conditionId:t.conditionId}),n=o.protocol==="ctf"?Rs(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,t.amount):Kt(e.environment.contracts.protocolV2Router,o.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?N(yield cn(K(e.environment.chainId,n))):yield*await V(e,{calls:[n],metadata:t.metadata??`Split ${t.amount} positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var Op=z.object({amount:z.bigint().positive(),legs:z.array(PositionIdSchema).min(1).max(50),metadata:$.optional()}),zw=qp;async function wp(e,r){let t=l(r,Op),o=yo(t.legs),n=$t(e.environment.contracts.combinatorialModule,o),s=fo(o),i=Kt(e.environment.contracts.protocolV2Router,s.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?(await N(yield cn(K(e.environment.chainId,n))).wait(),N(yield cn(K(e.environment.chainId,i)))):yield*await V(e,{calls:[n,i],metadata:t.metadata??`Split ${t.amount} combo positions for condition ${s.conditionId}`})}.call(null)}var EE=z.union([kp.extend({legs:z.never().optional()}),Op.extend({conditionId:z.never().optional()})]);async function SE(e,r){let t=l(r,EE);return t.legs!==void 0?wp(e,t):Ap(e,t)}var Lp=o(k$1,h$1,g,n,i,j,c,b,a),Ww=Lp;function jw(e,r){return Ap(e,r).then(_(e.signer))}var Hw=Lp;function Nw(e,r){return wp(e,r).then(_(e.signer))}function Kw(e,r){return SE(e,r).then(_(e.signer))}var Fp=o(h$1,g,c,b,a),Mp=z.object({amount:z.union([z.bigint().positive(),z.literal("max")]),conditionId:ConditionIdSchema,metadata:$.optional()}),Gw=Fp;async function Bp(e,r){let t=l(r,Mp),o=await fn(e,{conditionId:t.conditionId}),n=Yr(await e.rpc.ethCall(Vr(o.positionErc1155Address,e.account.wallet,o.outcomeIds))),s=Kp(o.conditionId,n,t.amount),i=o.protocol==="ctf"?Es(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,s):Gt(e.environment.contracts.protocolV2Router,o.conditionId,s);return async function*(){return e.account.walletType===WalletType.EOA?N(yield dn(K(e.environment.chainId,i))):yield*await V(e,{calls:[i],metadata:t.metadata??`Merge ${s} positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var Up=z.object({amount:z.union([z.bigint().positive(),z.literal("max")]),legs:z.array(PositionIdSchema).min(1).max(50),metadata:$.optional()}),$w=Fp;async function Dp(e,r){let t=l(r,Up),o=yo(t.legs),n=$t(e.environment.contracts.combinatorialModule,o),s=fo(o),i=Yr(await e.rpc.ethCall(Vr(e.environment.contracts.positionManager,e.account.wallet,s.positionIds))),f=Kp(s.conditionId,i,t.amount),P=Gt(e.environment.contracts.protocolV2Router,s.conditionId,f);return async function*(){return e.account.walletType===WalletType.EOA?(await N(yield dn(K(e.environment.chainId,n))).wait(),N(yield dn(K(e.environment.chainId,P)))):yield*await V(e,{calls:[n,P],metadata:t.metadata??`Merge ${f} combo positions for condition ${s.conditionId}`})}.call(null)}var hE=z.union([Mp.extend({legs:z.never().optional()}),Up.extend({conditionId:z.never().optional()})]);async function TE(e,r){let t=l(r,hE);return t.legs!==void 0?Dp(e,t):Bp(e,t)}var _p=o(k$1,h$1,g,n,i,j,c,b,a),Vw=_p;function Yw(e,r){return Bp(e,r).then(_(e.signer))}var Qw=_p;function Zw(e,r){return Dp(e,r).then(_(e.signer))}function Jw(e,r){return TE(e,r).then(_(e.signer))}var zp=o(h$1,g,c,b,a),Wp=z.object({conditionId:ConditionIdSchema,marketId:z.never().optional(),amount:z.never().optional(),positionId:z.never().optional(),metadata:$.optional()}),jp=z.object({conditionId:z.never().optional(),marketId:MarketIdSchema,amount:z.never().optional(),positionId:z.never().optional(),metadata:$.optional()}),xE=z.union([Wp,jp]),Xw=zp;async function CE(e,r){let t=l(r,xE),o=await fn(e,t.conditionId!==void 0?{conditionId:t.conditionId,closed:true}:{marketId:t.marketId,closed:true}),n=await AE(e,o);return async function*(){return e.account.walletType===WalletType.EOA?yield*vE(e,n):yield*await V(e,{calls:n,metadata:t.metadata??`Redeem positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var Hp=z.object({positionId:PositionIdSchema,conditionId:z.never().optional(),marketId:z.never().optional(),metadata:$.optional()});async function Np(e,r){let t=l(r,Hp),o=xa(t.positionId),n=fs(await e.rpc.ethCall(ms(e.environment.contracts.positionManager,e.account.wallet,t.positionId)));if(n===0n)throw new a("Position has no balance to redeem");let s=Qr(e.environment.contracts.protocolV2Router,o.conditionId,o.outcomeIndex,n);return async function*(){return e.account.walletType===WalletType.EOA?N(yield un(K(e.environment.chainId,s))):yield*await V(e,{calls:[s],metadata:t.metadata??`Redeem position ${t.positionId}`})}.call(null)}var e0=zp;function r0(e,r){return Np(e,r)}var IE=z.union([Wp,jp,Hp]);async function bE(e,r){let t=l(r,IE);return t.positionId!==void 0?Np(e,t):CE(e,t)}var t0=o(k$1,h$1,g,n,i,j,c,b,a);function o0(e,r){return bE(e,r).then(_(e.signer))}function cn(e){return {kind:"sendSplitPositionTransaction",request:e}}function dn(e){return {kind:"sendMergePositionsTransaction",request:e}}function un(e){return {kind:"sendRedeemPositionsTransaction",request:e}}async function*vE(e,r){let[t,...o]=r;invariant(t!==void 0,"Expected at least one redemption call");let n=t;for(let s of o)await N(yield un(K(e.environment.chainId,n))).wait(),n=s;return N(yield un(K(e.environment.chainId,n)))}async function fn(e,r){let t=r.conditionId!==void 0?`condition ${r.conditionId}`:`market ${r.marketId}`,o=await aa(e,r.conditionId!==void 0?{conditionIds:[r.conditionId],closed:r.closed,pageSize:1}:{ids:[qE(r.marketId)],closed:r.closed,pageSize:1}).firstPage(),[n]=o.items;if(n===void 0)throw new a(`No market found for ${t}`);let s=kE(n,t);return s.protocol==="v2"?{...s,positionErc1155Address:e.environment.contracts.positionManager}:{...s,adapterAddress:s.negRisk?e.environment.contracts.negRiskCollateralAdapter:e.environment.contracts.collateralAdapter,positionErc1155Address:s.negRisk?e.environment.contracts.negRiskAdapter:e.environment.contracts.conditionalTokens}}function qE(e){let r=Number(e);if(!Number.isInteger(r))throw new a(`Market ID must be an integer, received ${e}`);return r}function kE(e,r){if(!isPresent(e.conditionId))throw new b(`Missing condition ID for ${r}`);let t=e.outcomes.yes.tokenId,o=e.outcomes.no.tokenId,n=e.outcomes.yes.positionId,s=e.outcomes.no.positionId;if(isPresent(t)!==isPresent(o))throw new b(`Incomplete market token IDs for ${r}`);if(isPresent(t)&&isPresent(o)){if(!isPresent(e.state.negRisk))throw new b(`Missing negative-risk flag for ${r}`);return {marketId:e.id,conditionId:e.conditionId,protocol:"ctf",negRisk:e.state.negRisk,outcomeIds:[t,o]}}if(isPresent(n)!==isPresent(s))throw new b(`Incomplete market position IDs for ${r}`);if(isPresent(n)&&isPresent(s))return {marketId:e.id,conditionId:e.conditionId,protocol:"v2",outcomeIds:[n,s]};throw new b(`Missing tradeable outcome IDs for ${r}`)}async function AE(e,r){if(r.protocol==="ctf")return [Ss(r.adapterAddress,e.environment.contracts.collateralToken,r.conditionId)];let t=Yr(await e.rpc.ethCall(Vr(r.positionErc1155Address,e.account.wallet,r.outcomeIds)));if(t.length!==2)throw new b("Expected two position balances");let[o,n]=t;invariant(o!==void 0,"Expected YES position balance"),invariant(n!==void 0,"Expected NO position balance");let s=[];if(o>0n&&s.push(Qr(e.environment.contracts.protocolV2Router,r.conditionId,0,o)),n>0n&&s.push(Qr(e.environment.contracts.protocolV2Router,r.conditionId,1,n)),s.length===0)throw new a(`Market positions have no balance to redeem for condition ${r.conditionId}`);return s}function Kp(e,r,t){let o=OE(r);if(o===0n)throw new a(`You have no complementary positions to merge for condition ${e}`);if(t==="max")return o;if(t>o)throw new a(`Requested merge amount ${t} exceeds the maximum mergeable amount ${o} for condition ${e}`);return t}function OE(e){if(e.length!==2)throw new b("Expected two position balances");let[r,t]=e;return invariant(r!==void 0,"Expected YES position balance"),invariant(t!==void 0,"Expected NO position balance"),r<t?r:t}var BE=z.object({address:z.string()}),l0=o(h$1,g,c,b,a);async function m0(e,r){let t=l(r,BE);return unwrap(e.gamma.get("/public-profile",{params:h(t,T())}).andThen(y(PublicProfileSchema)).orElse(o=>o instanceof g&&o.status===404?ok(null):err(o)))}var gn=class extends PolymarketError{name="RfqQuoteRejectedError";code;errorId;rfqId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId;}},C0=o(e,gn,n,i,c,a),Rn=class extends PolymarketError{name="RfqCancelQuoteRejectedError";code;errorId;rfqId;quoteId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId,this.quoteId=t.quoteId;}},I0=o(e,Rn,i,c),En=class extends PolymarketError{name="RfqConfirmationRejectedError";code;errorId;rfqId;quoteId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId,this.quoteId=t.quoteId;}},b0=o(e,En,i,c),v0=o(e,c,a);async function q0(e){return _r(e),e.webSockets.rfqQuoter.connect()}var hn="/v1/builder/rfq/requests",jE=3e4,HE=3e4,NE=3e4,KE=500,GE=3e4,$E=1e3,VE="0x0000000000000000000000000000000000000000000000000000000000000000",Be=class extends PolymarketError{name="RfqRequestRejectedError";status;code;constructor(r,t){super(r,t),this.status=t.status,this.code=t.code;}};function Tn(e){return e instanceof g?new Be(e.message,{cause:e,code:tc(e.code),status:e.status}):e}var YE=new Set(Object.values(RfqRejectionCode));function tc(e){return e!==void 0&&YE.has(e)?e:RfqRejectionCode.RequestFailed}function oc(e){if(!e.hasBuilderApiKey)throw new a("Combo RFQ requests require a Builder API Key in the client configuration, via builderApiKey(...) or remoteBuilderSigning(...).")}var Qp=z.array(z.string().regex(/^\d+$/,"Leg position IDs must be numeric strings.").transform(e=>toPositionId(BigInt(e).toString()))).min(2,"Combo requests require at least 2 legs.").max(50,"Combo requests allow at most 50 legs.").refine(e=>new Set(e).size===e.length,"Leg position IDs must not contain duplicates.").transform(e=>[...e].sort((r,t)=>{let o=BigInt(r),n=BigInt(t);return o<n?-1:o>n?1:0})),Lt=z.union([z.number(),z.string()]).transform((e,r)=>{let t=/^(\d+)(?:\.(\d*))?$/.exec(String(e));if(t===null)return r.addIssue({code:"custom",message:"Value must be a valid decimal."}),z.NEVER;let[,o="",n=""]=t;if(n.length>6)return r.addIssue({code:"custom",message:"Value must have at most 6 decimal places."}),z.NEVER;let s=QE(o,n);return s<=0n?(r.addIssue({code:"custom",message:"Value must be greater than 0."}),z.NEVER):s.toString()});function QE(e,r){return BigInt(e)*1000000n+BigInt(r.padEnd(6,"0"))}var ZE=z.discriminatedUnion("direction",[z.object({amount:Lt,direction:z.literal(OrderSide.BUY),legPositionIds:Qp,side:z.literal(RfqSide.Yes).optional()}),z.object({direction:z.literal(OrderSide.SELL),legPositionIds:Qp,side:z.literal(RfqSide.Yes).optional(),size:Lt})]),k0=o(h$1,Be,c,b,a);async function A0(e,r){_r(e);let t=l(r,ZE);oc(e);let o=Sr(e.account),n={direction:t.direction===OrderSide.BUY?RfqDirection.Buy:RfqDirection.Sell,leg_position_ids:t.legPositionIds,maker_address:o.maker,requested_size:t.direction===OrderSide.BUY?{unit:RfqRequestedSizeUnit.Notional,value_e6:t.amount}:{unit:RfqRequestedSizeUnit.Shares,value_e6:t.size},side:RfqSide.Yes,signature_type:o.signatureType,signer_address:o.signer},s=await unwrap(e.builderGateway.post(hn,{json:n,timeout:jE}).andThen(y(BuilderRfqCreateResponseSchema)).mapErr(Tn));if("quote"in s){JE(s,n);let i=s.request.direction===RfqDirection.Buy?OrderSide.BUY:OrderSide.SELL,f={blendedPrice:s.quote.blendedPrice,builderCode:s.builderCode,expiresAt:s.expiresAt,makerAmount:s.quote.makerAmount,positionId:s.request.yesPositionId,quoteId:s.quote.quoteId,rfqId:s.rfqId,takerAmount:s.quote.takerAmount,totalRequired:s.quote.totalRequired};if(i===OrderSide.SELL){if(s.quote.netReceive===void 0)throw new b(`SELL quote for RFQ ${s.rfqId} omitted net sell proceeds.`);return {quote:{...f,direction:i,netReceive:s.quote.netReceive},rfqId:s.rfqId}}return {quote:{...f,direction:i},rfqId:s.rfqId}}return XE(s)}function JE(e,r){let t=e.request,o=[];if(t.rfqId!==e.rfqId&&o.push("rfq_id"),t.direction!==r.direction&&o.push("direction"),t.side!==r.side&&o.push("side"),(t.legPositionIds.length!==r.leg_position_ids.length||t.legPositionIds.some((n,s)=>n!==r.leg_position_ids[s]))&&o.push("leg_position_ids"),(t.requestedSize.unit!==r.requested_size.unit||t.requestedSize.valueE6!==r.requested_size.value_e6)&&o.push("requested_size"),o.length>0)throw new b(`Builder RFQ response did not echo the submitted ${o.join(", ")}.`)}function XE(e){switch(e.error?.code){case RfqKnownErrorCode.NoQuotes:return {quote:null,reason:ComboQuoteUnavailableReason.NoQuotes,rfqId:e.rfqId};case RfqKnownErrorCode.SizeTooLarge:return {quote:null,reason:ComboQuoteUnavailableReason.SizeTooLarge,rfqId:e.rfqId};default:throw new Be(e.error?.message??"The combo quote request failed.",{code:tc(e.error?.code),status:200,...e.error===void 0?{}:{cause:e.error}})}}var eS=OrderSideSchema,rS=z.object({blendedPrice:z.string(),builderCode:z.string().regex(/^0x[0-9a-fA-F]{64}$/,"builderCode must be a 32-byte hex string.").transform(toBuilderCode),direction:eS,expiresAt:z.number().int().nonnegative(),makerAmount:Lt.transform(toBaseUnits),netReceive:z.string().optional(),positionId:z.string().regex(/^\d+$/,"positionId must be a numeric string.").transform(toPositionId),quoteId:z.string().min(1).transform(toRfqQuoteId),rfqId:z.string().min(1).transform(toRfqId),takerAmount:Lt.transform(toBaseUnits),totalRequired:z.string()}),O0=o(k$1,h$1,Be,n,i,c,b,a);async function w0(e,r){_r(e);let t=l(r,rS);oc(e);let o=Xa({chainId:e.environment.chainId,exchange:e.environment.contracts.exchangeV3}),n=nS(e,t),s=await aS(e,o,n),i$1={quote_id:t.quoteId,signed_order:s};function f(){return e.builderGateway.post(`${hn}/${encodeURIComponent(t.rfqId)}/accept`,{json:i$1,timeout:HE}).andThen(y(BuilderRfqStatusResponseSchema))}let P=await f();if(P.isErr()&&(P.error instanceof c||P.error instanceof b)&&(P=await f()),P.isErr()){let M=tS(t.rfqId,P.error);if(M!==void 0)return M;throw Tn(P.error)}let C=P.value,I=P.value.takerOrderHash,z=Date.now()+NE;for(;C.status===RfqStatus.AwaitingMakerConfirmation;){if(Date.now()>=z)throw new i(`Timed out waiting for the acceptance outcome of RFQ ${t.rfqId}.`);await delay(KE),C=await nc(e,{rfqId:t.rfqId});}return C.status===RfqStatus.Failed||C.status===RfqStatus.Expired||C.status===RfqStatus.Canceled?{reason:oS(C.status,C.error?.code),rfqId:C.rfqId,status:"failed",...C.error===void 0?{}:{error:C.error}}:{rfqId:C.rfqId,status:"executing",...I===void 0?{}:{takerOrderHash:I}}}function tS(e,r){if(r instanceof g&&r.code===RfqKnownErrorCode.ExpiredRfq)return {error:{code:RfqKnownErrorCode.ExpiredRfq,message:r.message},reason:ComboAcceptFailureReason.AcceptanceWindowExpired,rfqId:e,status:"failed"}}function oS(e,r){return e===RfqStatus.Expired||r===RfqKnownErrorCode.ExpiredRfq?ComboAcceptFailureReason.AcceptanceWindowExpired:r===RfqKnownErrorCode.MakerDeclined?ComboAcceptFailureReason.MakerDeclined:ComboAcceptFailureReason.ExecutionFailed}function nS(e,r){let t=Sr(e.account);return {builder:r.builderCode,maker:t.maker,makerAmount:r.makerAmount,metadata:VE,salt:sS().toString(),side:wo(r.direction),signatureType:t.signatureType,signer:t.signer,takerAmount:r.takerAmount,timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:r.positionId}}function sS(){let e=new Uint8Array(8);return globalThis.crypto.getRandomValues(e),BigInt(`0x${Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}`)}async function aS(e,r,t){let o;try{o=await e.signer.signTypedData(Rt({domain:r,order:t}));}catch(n$1){throw n$1 instanceof k$1?n$1:n.fromError(n$1,"Could not sign the combo quote acceptance order.")}return {...t,signature:Et({domain:r,order:t,signature:o})}}var iS=z.object({pollingIntervalMs:z.number().int().positive().optional(),rfqId:z.string().min(1).transform(toRfqId),timeoutMs:z.number().int().positive().optional()}),L0=o(h$1,Be,i,c,b,a);async function F0(e,r){_r(e);let t=l(r,iS),o=t.timeoutMs??GE,n=t.pollingIntervalMs??$E,s=Date.now()+o;for(;;){let i$1=await nc(e,{rfqId:t.rfqId});if(i$1.status===RfqStatus.Filled||i$1.status===RfqExecutionStatus.Confirmed){if(i$1.txHash===void 0)throw new b(`RFQ ${i$1.rfqId} reached ${i$1.status} without a transaction hash.`);return {rfqId:i$1.rfqId,status:RfqStatus.Filled,txHash:i$1.txHash}}if(i$1.status===RfqStatus.Failed||i$1.status===RfqStatus.Expired||i$1.status===RfqStatus.Canceled)return {rfqId:i$1.rfqId,status:i$1.status,...i$1.error===void 0?{}:{error:i$1.error}};if(Date.now()>=s)throw new i(`Timed out after ${o}ms waiting for RFQ ${t.rfqId} to reach a terminal state.`);await delay(n);}}var pS=z.object({rfqId:z.string().min(1).transform(toRfqId)}),M0=o(h$1,Be,c,b,a);function nc(e,r){_r(e);let t=l(r,pS);return unwrap(e.builderGateway.get(`${hn}/${encodeURIComponent(t.rfqId)}`).andThen(y(BuilderRfqStatusResponseSchema)).mapErr(Tn))}function _r(e){if(e.account.signerType==="SESSION_KEY")throw new a("Combos is not supported with Session Keys")}var sc=(f=>(f.Volume="volume",f.Volume24Hr="volume_24hr",f.Liquidity="liquidity",f.Competitive="competitive",f.ClosedTime="closed_time",f.StartDate="start_date",f.EndDate="end_date",f))(sc||{}),uS=z.object({q:z.string().trim().min(1),ascending:z.boolean().optional(),cache:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),eventsStatus:z.string().min(1).optional(),eventsTag:z.array(z.string()).optional(),excludeTagIds:z.array(z.number().int()).optional(),keepClosedMarkets:z.number().int().optional(),optimized:z.boolean().optional(),pageSize:k.default(10),presets:z.array(z.string()).optional(),recurrence:z.enum(["daily","weekly","monthly"]).optional(),searchProfiles:z.boolean().optional(),searchTags:z.boolean().optional(),sort:z.enum(sc).optional()}),tL=o(h$1,g,c,b,a);function oL(e,r){let{cursor:t,pageSize:o,...n}=l(r,uS);return x(s=>{let i=re(s,o);return e.gamma.get("/public-search",{params:h({...n,limitPerType:i.pageSize,page:i.offset},T({excludeTagIds:"exclude_tag_id"}))}).andThen(y(PublicSearchResponseSchema)).map(f=>({items:lS(f),hasMore:f.pagination?.hasMore??false,totalCount:f.pagination?.totalResults??void 0,nextCursor:f.pagination?.hasMore?Z({offset:i.offset+1,pageSize:i.pageSize}):void 0}))},t??Z({offset:1,pageSize:o}),{events:[],profiles:[],tags:[]})}function lS(e){return {events:e.events??[],profiles:e.profiles??[],tags:e.tags??[]}}var gS=z.object({ascending:z.boolean().optional(),closed:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),excludeEvents:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),pageSize:k.max(50).default(20),recurrence:z.enum(["daily","weekly","monthly"]).optional(),slug:z.array(z.string()).optional()}),RS=z.object({id:z.string(),locale:z.string().optional()}),fL=o(h$1,g,c,b,a);function yL(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,gS);return x(s=>{let i=re(s,o);return e.gamma.get("/series",{params:h({...n,limit:i.pageSize,offset:i.offset},T())}).andThen(y(ListSeriesResponseSchema)).map(f=>{let P=f.length>=i.pageSize;return {items:f,hasMore:P,nextCursor:P?Z({offset:i.offset+i.pageSize,pageSize:i.pageSize}):void 0}})},t)}var PL=o(h$1,g,c,b,a);async function gL(e,r){let t=l(r,RS);return unwrap(e.gamma.get(`series/${t.id}`,{params:h({locale:t.locale},T())}).andThen(y(SeriesSchema)))}function Cn(e){if(e.kind==="authorization"?e.status===RelayerAuthorizeSessionSignerStatus.FAILED||e.status===RelayerAuthorizeSessionSignerStatus.SUPERSEDED||e.status===RelayerAuthorizeSessionSignerStatus.REPAIR_REQUIRED:e.status===RelayerRevokeSessionSignerStatus.FAILED)throw new j(`Session-key ${e.kind} reached terminal status ${e.status}`)}var ML=o(h$1,g,n,c,b,a);async function cc(e){qn(e);let r=await unwrap(e.secureClob.get("/v1/user/session-signers").andThen(y(ActiveSessionSignersResponseSchema)));if(!isSameEvmAddress(r.wallet,e.account.wallet))throw new b(`Session-key response wallet ${r.wallet} does not match authenticated wallet ${e.account.wallet}`);return r.signers.map(t=>({address:expectEvmAddress(t.address.toLowerCase()),scopes:t.scopes,validUntil:t.validUntil}))}var IS=[SessionSignerKnownScope.ALL],bS=4315*60*60,dc=300*1e3,vS=z.object({address:EvmAddressSchema,idempotencyKey:z.string().trim().min(1).optional(),scopes:z.array(SessionSignerScopeSchema).min(1).default(IS)}).superRefine((e,r)=>{isSameEvmAddress(e.address,ZERO_ADDRESS)&&r.addIssue({code:"custom",message:"Session key address must not be the zero address.",path:["address"]}),e.scopes.includes(SessionSignerKnownScope.ALL)&&e.scopes.some(t=>t!==SessionSignerKnownScope.ALL)&&r.addIssue({code:"custom",message:"Session key scope ALL cannot be combined with another scope.",path:["scopes"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),BL=o(k$1,h$1,g,n,i,j,c,b,a);async function UL(e,r){if(qn(e),!e.hasBuilderApiKey)throw new a("Session-key authorization requires builder API-key authentication.");let t=l(r,vS),o=Math.floor(Date.now()/1e3)+bS,n=await _(e.signer)(nr(e,[ys(e.account.wallet,t.address,BigInt(o))])),s={deadline:n.depositWalletParams.deadline,nonce:n.nonce,scopes:t.scopes,sessionSignerAddress:t.address,signature:n.signature,validUntil:`${o}`,walletAddress:e.account.wallet},i=await unwrap(e.relayer.post("/v1/session-signers/authorizations",{headers:{"Idempotency-Key":t.idempotencyKey??globalThis.crypto.randomUUID()},json:s,timeout:dc}).andThen(y(RelayerAuthorizeSessionSignerResponseSchema)));Cn({kind:"authorization",status:i.status});let f=await new ze(e,i).wait();return {sessionKey:await AS(e,{address:t.address,scopes:t.scopes,validUntil:o}),transaction:f}}var qS=z.object({address:EvmAddressSchema,idempotencyKey:z.string().trim().min(1).optional()}).superRefine((e,r)=>{isSameEvmAddress(e.address,ZERO_ADDRESS)&&r.addIssue({code:"custom",message:"Session key address must not be the zero address.",path:["address"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),DL=o(k$1,h$1,g,n,i,j,c,b,a);async function _L(e,r){if(qn(e),!e.supportsGasless)throw new a("Session-key revocation requires API-key authentication that supports gasless transactions.");let t=l(r,qS),o=await _(e.signer)(nr(e,[Ps(e.account.wallet,t.address)])),n={deadline:o.depositWalletParams.deadline,nonce:o.nonce,sessionSignerAddress:t.address,signature:o.signature,walletAddress:e.account.wallet},s=await unwrap(e.relayer.post("/v1/session-signers/revocations",{headers:{"Idempotency-Key":t.idempotencyKey??globalThis.crypto.randomUUID()},json:n,timeout:dc}).andThen(y(RelayerRevokeSessionSignerResponseSchema)));Cn({kind:"revocation",status:s.status}),await kS(e,t.address);}async function kS(e,r){for(let t=0;t<e.environment.relayerMaxPolls;t+=1){if(!(await cc(e)).some(n=>isSameEvmAddress(n.address,r)))return;await delay(e.environment.relayerPollFrequencyMs);}throw new i(`Timed out waiting for session key ${r} to be revoked`)}async function AS(e,r){for(let t=0;t<e.environment.relayerMaxPolls;t+=1){let o=(await cc(e)).find(n=>isSameEvmAddress(n.address,r.address)&&n.validUntil===r.validUntil&&OS(n.scopes,r.scopes));if(o!==void 0)return o;await delay(e.environment.relayerPollFrequencyMs);}throw new i(`Timed out waiting for session key ${r.address} to become active`)}function OS(e,r){let t=new Set(r);return new Set(e).size===t.size&&e.every(o=>t.has(o))}function qn(e){if(e.account.walletType!==WalletType.DEPOSIT_WALLET)throw new a("Session keys can only be managed for a Deposit Wallet.");if(e.account.signerType!=="OWNER")throw new a("Session keys can only be managed by the Deposit Wallet owner.")}var KL=o(h$1,g,c,b);async function GL(e){return unwrap(e.gamma.get("/sports").andThen(y(ListSportsMetadataResponseSchema)))}var $L=o(h$1,g,c,b);async function VL(e){return unwrap(e.gamma.get("/sports/market-types").andThen(y(SportsMarketTypesResponseSchema)))}var rF=o(c,a),BS=z.object({topic:z.literal("prices.crypto.chainlink.twap"),windowSeconds:z.union([z.literal(30),z.literal(60)]),symbols:z.array(z.string()).optional()}),US=z.union([z.object({topic:z.literal("market"),assetIds:z.array(z.string()),tokenIds:z.never().optional(),customFeatureEnabled:z.boolean().optional()}),z.object({topic:z.literal("market"),assetIds:z.never().optional(),tokenIds:z.array(z.string()),customFeatureEnabled:z.boolean().optional()})]);async function tF(e,r){for(let o of r)switch(o.topic){case "market":l(o,US);break;case "prices.crypto.chainlink.twap":l(o,BS);break}let t=await Promise.all(r.map(o=>DS(e,o)));return _S(t)}function DS(e,r){switch(r.topic){case "market":return e.webSockets.clobMarket.subscribe(r);case "sports":return e.webSockets.sports.subscribe(r);case "comments":case "prices.crypto.binance":case "prices.crypto.chainlink":case "prices.crypto.chainlink.twap":case "prices.equity.pyth":return e.webSockets.rtds.subscribe(r);case "perps.trades":case "perps.bbo":case "perps.book":case "perps.candles":case "perps.tickers":case "perps.statistics":return e.webSockets.perpsSubscriptions.subscribe(r);case "user":return invariant(e.isSecureClient(),"A 'user' subscription requires a secure client instance."),e.webSockets.clobUser.subscribe(r)}}function _S(e){let r;async function t(){r===void 0&&(r=Promise.all(e.map(n=>n.close())).then(()=>{})),await r;}let o=MS(...e);return {close:t,[Symbol.asyncIterator](){return o[Symbol.asyncIterator]()}}}var jS=z.object({ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),includeTemplate:z.boolean().optional(),isCarousel:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),pageSize:k.max(100).default(20)}),HS=z.union([z.object({id:z.string(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({slug:z.string(),locale:z.string().optional()})]),NS=z.object({id:z.string(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),KS=z.object({slug:z.string()}),GS=z.object({id:z.string(),locale:z.string().optional(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),$S=z.object({locale:z.string().optional(),slug:z.string(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),mF=o(h$1,g,c,b,a);function fF(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,jS);return x(s=>{let i=re(s,o);return e.gamma.get("/tags",{params:h({...n,limit:i.pageSize,offset:i.offset},T())}).andThen(y(ListTagsResponseSchema)).map(f=>{let P=f.length>=i.pageSize;return {items:f,hasMore:P,nextCursor:P?Z({offset:i.offset+i.pageSize,pageSize:i.pageSize}):void 0}})},t)}var yF=o(h$1,g,c,b,a);async function PF(e,r){let t=l(r,HS);return "id"in t?unwrap(e.gamma.get(`tags/${t.id}`,{params:h({includeTemplate:t.includeTemplate,locale:t.locale},T())}).andThen(y(TagSchema))):unwrap(e.gamma.get(`tags/slug/${t.slug}`,{params:h({locale:t.locale},T())}).andThen(y(TagSchema)))}var gF=o(h$1,g,c,b,a);async function RF(e,r){if("id"in r){let o=l(r,NS);return unwrap(e.gamma.get(`tags/${o.id}/related-tags`,{params:h({omitEmpty:o.omitEmpty,status:o.status},T())}).andThen(y(ListRelatedTagsResponseSchema)))}let t=l(r,KS);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags`).andThen(y(ListRelatedTagsResponseSchema)))}var EF=o(h$1,g,c,b,a);async function SF(e,r){if("id"in r){let o=l(r,GS);return unwrap(e.gamma.get(`tags/${o.id}/related-tags/tags`,{params:h({locale:o.locale,omitEmpty:o.omitEmpty,status:o.status},T())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}let t=l(r,$S);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags/tags`,{params:h({locale:t.locale,omitEmpty:t.omitEmpty,status:t.status},T())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}var QS=z.object({abbreviation:z.array(z.string()).optional(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),league:z.array(z.string()).optional(),name:z.array(z.string()).optional(),order:z.string().optional(),pageSize:k.max(100).default(20),providerId:z.array(z.number().int()).optional()}),AF=o(h$1,g,c,b,a);function OF(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,QS);return x(s=>{let i=re(s,o);return e.gamma.get("/teams",{params:h({...n,limit:i.pageSize,offset:i.offset},T({providerId:"provider_id"}))}).andThen(y(ListTeamsResponseSchema)).map(f=>{let P=f.length>=i.pageSize;return {items:f,hasMore:P,nextCursor:P?Z({offset:i.offset+i.pageSize,pageSize:i.pageSize}):void 0}})},t)}var JS=z.object({amount:z.bigint(),metadata:$.optional(),recipientAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),jF=o(a);async function XS(e,r){let t=l(r,JS);return async function*(){return e.account.walletType===WalletType.EOA?N(yield eh(K(e.environment.chainId,Nt(t.tokenAddress,t.recipientAddress,t.amount)))):yield*await V(e,{calls:[Nt(t.tokenAddress,t.recipientAddress,t.amount)],metadata:t.metadata??`Transfer ${t.amount} of ${t.tokenAddress} to ${t.recipientAddress}`})}.call(null)}var HF=o(k$1,h$1,g,n,c,b,a);function NF(e,r){return XS(e,r).then(_(e.signer))}function eh(e){return {kind:"sendErc20TransferTransaction",request:e}}
2
+ export{Vh as $,Mx as $a,eI as $b,Pv as $c,Ei as $d,HT as A,N as Aa,OC as Ab,cb as Ac,Et as Ad,zO as Ae,CE as Af,rF as Ag,Gt as B,ex as Ba,wC as Bb,db as Bc,Xa as Bd,WO as Be,Np as Bf,tF as Bg,NT as C,xs as Ca,LC as Cb,pk as Cd,jO as Ce,e0 as Cf,mF as Cg,Qr as D,yx as Da,FC as Db,ck as Dd,HO as De,r0 as Df,fF as Dg,KT as E,Zt as Ea,MC as Eb,wo as Ed,UR as Ee,bE as Ef,yF as Eg,$t as F,Px as Fa,BC as Fb,Uo as Fd,NO as Fe,t0 as Ff,PF as Fg,hs as G,gx as Ga,UC as Gb,vb as Gc,dy as Gd,KO as Ge,o0 as Gf,gF as Gg,Ts as H,$ as Ha,DC as Hb,qb as Hc,Do as Hd,nw as He,l0 as Hf,RF as Hg,l as I,Rx as Ia,Ns as Ib,kb as Ic,uy as Id,sw as Ie,m0 as If,EF as Ig,Fn as J,Ex as Ja,_C as Jb,Ab as Jc,_o as Jd,aw as Je,gn as Jf,SF as Jg,jn as K,bu as Ka,Ks as Kb,Ob as Kc,vk as Kd,iw as Ke,C0 as Kf,AF as Kg,Eh as L,Sx as La,zC as Lb,wb as Lc,qk as Ld,pw as Le,Rn as Lf,OF as Lg,Sr as M,V as Ma,Gs as Mb,Lb as Mc,kk as Md,cw as Me,I0 as Mf,jF as Mg,Hn as N,Jt as Na,WC as Nb,Fb as Nc,Ak as Nd,dw as Ne,En as Nf,XS as Ng,Nn as O,Xt as Oa,jC as Ob,Mb as Oc,Dk as Od,uw as Oe,b0 as Of,HF as Og,Uh as P,nr as Pa,HC as Pb,Bb as Pc,_k as Pd,lw as Pe,v0 as Pf,NF as Pg,Dh as Q,eo as Qa,NC as Qb,nA as Qd,mw as Qe,q0 as Qf,_h as R,ro as Ra,KC as Rb,hy as Rd,fw as Re,Be as Rf,zh as S,to as Sa,rt as Sb,sA as Sd,yw as Se,k0 as Sf,Wh as T,hx as Ta,GC as Tb,aA as Td,Pw as Te,A0 as Tf,jh as U,ze as Ua,$C as Ub,Zb as Uc,iA as Ud,gw as Ue,O0 as Uf,Hh as V,wx as Va,VC as Vb,Jb as Vc,Ty as Vd,w0 as Vf,Yn as W,Du as Wa,YC as Wb,pA as Wd,L0 as Wf,Nh as X,Lx as Xa,QC as Xb,mv as Xc,cA as Xd,F0 as Xf,Kh as Y,Os as Ya,ZC as Yb,aa as Yc,St as Yd,M0 as Yf,Gh as Z,Fx as Za,JC as Zb,fv as Zc,gi as Zd,nc as Zf,$h as _,zu as _a,XC as _b,yv as _c,Ri as _d,ee as a,zt as aa,ws as ab,rI as ac,gv as ad,ht as ae,qp as af,BT as b,Yh as ba,Bx as bb,tI as bc,Rv as bd,Tt as be,_w as bf,Gr as c,Zn as ca,Ux as cb,oI as cc,Ev as cd,xt as ce,Ap as cf,cs as d,Qh as da,Dx as db,nI as dc,Sv as dd,op as de,zw as df,ds as e,Zh as ea,ju as eb,sI as ec,hv as ed,ap as ee,wp as ef,$r as f,Jh as fa,_x as fb,gI as fc,Tv as fd,pp as fe,SE as ff,us as g,Xh as ga,zx as gb,RI as gc,xv as gd,Pp as ge,Lp as gf,ls as h,eT as ha,$x as hb,EI as hc,Cv as hd,TO as he,Ww as hf,ms as i,rT as ia,$u as ib,Kl as ic,Iv as id,xO as ie,jw as if,sc as ig,fs as j,tT as ja,Vx as jb,SI as jc,Dv as jd,CO as je,Hw as jf,tL as jg,Vr as k,oT as ka,Vu as kb,hI as kc,_v as kd,IO as ke,Nw as kf,oL as kg,Yr as l,nT as la,Yx as lb,zv as ld,bO as le,Kw as lf,fL as lg,UT as m,sT as ma,Qx as mb,FI as mc,Wv as md,oR as me,Fp as mf,yL as mg,Nt as n,aT as na,Zx as nb,MI as nc,jv as nd,vO as ne,Gw as nf,PL as ng,ys as o,iT as oa,Jx as ob,BI as oc,Hv as od,qO as oe,Bp as of,gL as og,Ps as p,hT as pa,Xx as pb,UI as pc,Nv as pd,kO as pe,$w as pf,DT as q,TT as qa,eC as qb,DI as qc,Kv as qd,AO as qe,Dp as qf,ML as qg,gs as r,xT as ra,rC as rb,_I as rc,oq as rd,OO as re,TE as rf,cc as rg,_T as s,CT as sa,tC as sb,rb as sc,nq as sd,wO as se,_p as sf,BL as sg,Rs as t,IT as ta,oC as tb,tb as tc,Rf as td,LO as te,Vw as tf,UL as tg,zT as u,bT as ua,nC as ub,ob as uc,lo as ud,FO as ue,Yw as uf,DL as ug,Es as v,sC as vb,nb as vc,fq as vd,MO as ve,Qw as vf,_L as vg,WT as w,aC as wb,sb as wc,yq as wd,BO as we,Zw as wf,KL as wg,Ss as x,gC as xb,ab as xc,ut as xd,UO as xe,Jw as xf,GL as xg,jT as y,RC as yb,ib as yc,Pq as yd,DO as ye,zp as yf,$L as yg,Kt as z,YT as za,AC as zb,pb as zc,Rt as zd,_O as ze,Xw as zf,VL as zg};//# sourceMappingURL=chunk-LGU5PMHE.js.map
3
+ //# sourceMappingURL=chunk-LGU5PMHE.js.map