@polymarket/client 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/viem.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PrivateKey } from '@polymarket/types';
2
2
  import { Chain, Transport, WalletClient } from 'viem';
3
- import { S as Signer } from './types-Cg8WP4aO.js';
3
+ import { S as Signer } from './types-MSQcyDVD.js';
4
4
  import '@polymarket/bindings';
5
5
  import '@polymarket/bindings/gamma';
6
6
  import '@polymarket/bindings/relayer';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymarket/client",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "The Polymarket TypeScript client",
5
5
  "repository": {
6
6
  "type": "git",
@@ -93,7 +93,7 @@
93
93
  "ky": "^1.14.3",
94
94
  "ox": "^0.14.16",
95
95
  "zod": "^4.3.6",
96
- "@polymarket/bindings": "0.8.0",
96
+ "@polymarket/bindings": "0.9.0",
97
97
  "@polymarket/types": "0.2.0"
98
98
  },
99
99
  "publishConfig": {
@@ -1,3 +0,0 @@
1
- import {o,h as h$1,g,n,c,b,a,i,j,k,l as l$1,m,e}from'./chunk-DLZLJOGO.js';import {PaginationCursorSchema,ComboConditionIdSchema,TransactionIdSchema,EvmAddressSchema,BuilderCodeSchema,ConditionIdSchema,CommentParentEntityTypeSchema,EventIdSchema,CommentIdSchema,IsoDateTimeStringSchema,IsoCalendarDateStringSchema,PositionIdSchema,TokenIdSchema,OrderType,PositiveDecimalNumberSchema,OrderSide,OrderSideSchema,TxHashSchema,MarketIdSchema,toPositionId,toBaseUnits,toRfqId,toRfqQuoteId,toBuilderCode,SessionSignerKnownScope,SessionSignerScopeSchema,TradeStatus,toTokenId,toPaginationCursor,toDecimalString,toComboConditionId,toConditionId}from'@polymarket/bindings';export{SessionSignerKnownScope as Tf}from'@polymarket/bindings';import {AssetTypeSchema,PriceHistoryIntervalSchema,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,PriceHistorySchema,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}from'@polymarket/types';import {z as z$1}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 Rn from'ky';import {SideSchema,ActivityTypeSchema,TimePeriodSchema,LeaderboardOrderBySchema,LeaderboardCategorySchema,ComboPositionStatusSchema,ListTradesResponseSchema,ListActivityResponseSchema,ListComboActivityResponseSchema,FetchEventLiveVolumeResponseSchema,ListBuilderLeaderboardResponseSchema,ListBuilderVolumeResponseSchema,ListTraderLeaderboardResponseSchema,ListMarketHoldersResponseSchema,ListOpenInterestResponseSchema,ListMarketPositionsResponseSchema,ListPositionsResponseSchema,ListClosedPositionsResponseSchema,ListComboPositionsResponseSchema,FetchPortfolioValueResponseSchema,TradedSchema}from'@polymarket/bindings/data';export{ComboPositionOutcome as Ce,ComboPositionStatus as De,ComboActivityType as va}from'@polymarket/bindings/data';import {RelayerTransactionType,RelayerExecuteRequestSchema,RelayerTransactionState,RelayerAuthorizeSessionSignerStatus,RelayerRevokeSessionSignerStatus,RelayerExecuteParamsSchema,RelayerDeployedResponseSchema,GaslessTransactionSchema,RelayerExecuteResponseSchema,RelayerAuthorizeSessionSignerResponseSchema,RelayerRevokeSessionSignerResponseSchema}from'@polymarket/bindings/relayer';import {CollateralReturnPlanSchema,RfqRejectionCode,RfqSide,RfqRequestedSizeUnit,RfqDirection,RfqKnownErrorCode,ComboQuoteUnavailableReason,RfqStatus,ComboAcceptFailureReason,RfqExecutionStatus,CollateralReturnPlanResponseSchema,ListComboMarketsResponseSchema,BuilderRfqCreateResponseSchema,BuilderRfqStatusResponseSchema}from'@polymarket/bindings/combos';export{ComboAcceptFailureReason as Cf,ComboQuoteUnavailableReason as Df,RfqConfirmationDecision as Ef,RfqDirection as Ff,RfqExecutionStatus as Gf,RfqKnownErrorCode as Hf,RfqRejectionCode as If,RfqRequestedSizeUnit as Jf,RfqSide as Kf,RfqStatus as Lf,CollateralReturnKnownOperationKind as ic}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 JE from'it-merge';function l(e,r){let t=r.safeParse(e);if(t.success)return t.data;throw a.fromZodError(t.error)}var A=z$1.number().int().positive(),yn=z$1.object({offset:z$1.number().int().min(0),pageSize:A});function C(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(a){return a===void 0?o():n(a)},async*[Symbol.asyncIterator](){let a=s;for(;;){let m=await unwrap(e(a));if(yield m,!m.hasMore)return;a=m.nextCursor;}}}}return n()}function z(e){return toPaginationCursor(btoa(JSON.stringify(yn.parse(e))))}function _(e,r){if(e===void 0)return {offset:0,pageSize:r};try{return yn.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=>Qp(t.url,e,o))}}function gn(e){return ResultAsync.fromPromise(e.blob(),()=>new b(`Received unreadable binary response from ${e.url}`))}function Qp(e,r,t){let o=r.safeParse(t);return o.success?ok(o.data):err(b.fromZodError(o.error,{endpoint:e}))}var En=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(!bn(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=Tn(r.gasPrice)),r.value!==void 0&&(t.value=Tn(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(hn(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 a=s+1,m=o.get(a);if(m===void 0)throw new b("Expected JSON-RPC batch response for every request");if("error"in m)throw new g(`JSON-RPC eth_call failed: ${m.error.message}`,{cause:m.error,status:200});return hn(m.result)})}async#o(r){let t;try{t=await Rn.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(!Sn(o))throw new b("Unexpected JSON-RPC response shape");return o}async#s(r){let t;try{t=await Rn.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=>Sn(n)))throw new b("Unexpected JSON-RPC response shape");return o}};function xn(e){if(!(e instanceof g)||!Cn(e.cause))return false;let r=[e.cause.message,Zp(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 Sn(e){return !In(e)||e.jsonrpc!=="2.0"?false:"error"in e?Cn(e.error):"result"in e}function Cn(e){return In(e)&&typeof e.code=="number"&&typeof e.message=="string"}function In(e){return typeof e=="object"&&e!==null}function bn(e){return /^0x[a-fA-F0-9]*$/.test(e)}function hn(e,r="eth_call"){if(typeof e!="string"||!bn(e))throw new b(`Expected JSON-RPC ${r} result to be a hex string`);return e}function Tn(e){return `0x${e.toString(16)}`}function Zp(e){if(e===void 0)return "";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return ""}}var kn=(t=>(t.OWNER="OWNER",t.SESSION_KEY="SESSION_KEY",t))(kn||{}),Xp="0x0000000000000000000000000000000000000000000000000000000000000000",ec="0x6492649264926492649264926492649264926492649264926492649264926492";function BS(e,r,t){let o=Ec(e,r,t);return {signer:r,wallet:t,...o}}function ye(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 fr(e){let r=ye(e.walletType);return {maker:e.wallet,signatureType:r,signer:r===SignatureType.POLY_1271?e.wallet:e.signer}}function Ye(e,r){return e.signerType==="OWNER"?r:rc(e.signer,r)}function rc(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),o=AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes"}],[t,Xp,r]);return expectSessionSignerSignature(`${o}${ec.slice(2)}`)}var tc="3d3d606380380380913d393d73%s5af4602a57600080fd5b602d8060366000396000f3363d3d373d3d3d363d73%s5af43d82803e903d91602b57fd5bf352e831dd00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000";function oc(e){let r=tc.replace("%s",e.proxyFactory.slice(2).toLowerCase()).replace("%s",e.proxyImplementation.slice(2).toLowerCase());return expectHexString(Hash.keccak256(`0x${r}`))}function nc(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:oc(r),from:r.proxyFactory,salt:Hash.keccak256(AbiParameters.encodePacked(["address"],[e]))}))}function sc(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:r.safeInitCodeHash,from:r.safeFactory,salt:Hash.keccak256(AbiParameters.encode([{name:"address",type:"address"}],[e]))}))}var ac="0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3",ic="0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076",pc=0x61003d3d8160233d3973n;function qn(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:fc(r.depositWalletImplementation,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}var cc="0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3",dc="0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c",uc="0x60195155f3363d3d373d3d363d602036600436635c60da",lc=0x6100523d8160233d3973n,mc="0x49493a4d";function vn(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:yc(r.depositWalletBeacon,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}function fc(e,r){let t=BigInt((r.length-2)/2),o=pc+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(o,{size:10}),Bytes.fromHex(e),Bytes.fromHex("0x6009"),Bytes.fromHex(ic),Bytes.fromHex(ac),Bytes.fromHex(r)),{as:"Hex"}))}function yc(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(uc),Bytes.fromHex(dc),Bytes.fromHex(cc),Bytes.fromHex(r)),{as:"Hex"}))}async function Pc(e,r){try{let t=await e.ethCall({to:r,data:mc});return Rc(t)}catch(t){if(xn(t))return ZERO_ADDRESS;throw t}}async function gc(e,r){let t=await Pc(e,r);return !isSameEvmAddress(t,ZERO_ADDRESS)}async function An(e,r,t){return await gc(e,t.depositWalletFactory)?vn(r,t):qn(r,t)}function Rc(e){return e.length<66?ZERO_ADDRESS:expectEvmAddress(`0x${e.slice(-40)}`)}function Ec(e,r,t){if(isSameEvmAddress(t,r))return {signerType:"OWNER",walletType:WalletType.EOA};let o=e.walletDerivation;return isSameEvmAddress(t,vn(r,o))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,qn(r,o))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,sc(r,o))?{signerType:"OWNER",walletType:WalletType.GNOSIS_SAFE}:isSameEvmAddress(t,nc(r,o))?{signerType:"OWNER",walletType:WalletType.POLY_PROXY}:{signerType:"SESSION_KEY",walletType:WalletType.DEPOSIT_WALLET}}var On=z$1.string().transform(e=>e);function J(e){return z$1.union([z$1.object({...e,assetId:On,tokenId:z$1.never().optional()}),z$1.object({...e,assetId:z$1.never().optional(),tokenId:z$1.string()})])}function Te(e){return z$1.union([z$1.object({...e,assetId:On.optional(),tokenId:z$1.never().optional()}),z$1.object({...e,assetId:z$1.never().optional(),tokenId:z$1.string().optional()})])}function R(e,r){if(Sc(r))return hc(e,r.exceptions);let t=new URLSearchParams;for(let[o,n]of Object.entries(r)){let s=e[o];if(s!==void 0){if(wn(s)){for(let a of s)t.append(n,Qe(a));continue}t.append(n,Qe(s));}}return t}function h(e={}){return {format:"snake_case",exceptions:e}}function K(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(Qe).join(","));continue}r.append(t,Qe(o));}return r}function Sc(e){return "format"in e}function hc(e,r){let t=new URLSearchParams;for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let s=r[o]??Tc(o);if(wn(n)){for(let a of n)t.append(s,Qe(a));continue}t.append(s,Qe(n));}return t}function wn(e){return Array.isArray(e)}function Tc(e){return e.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`)}function Qe(e){return String(e)}var JS=o(h$1,g,n,c,b);async function XS(e){return (await unwrap(e.secureClob.get("/auth/ban-status/closed-only").andThen(y(ClosedOnlyModeSchema)))).closedOnly}var Bc=z$1.object({cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),market:z$1.string().optional()}),Uc=Te(Bc.shape).default({}),eh=o(h$1,g,n,c,b,a);function rh(e,r){let t=l(r,Uc),{cursor:o}=t;return C(n=>e.secureClob.get("/data/orders",{params:R({assetId:t.assetId??t.tokenId,id:t.id,market:t.market,nextCursor:n},h({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 Dc=z$1.object({orderId:z$1.string()}),th=o(h$1,g,n,c,b,a);async function oh(e,r){let t=l(r,Dc);return unwrap(e.secureClob.get(`/data/order/${t.orderId}`).andThen(y(OpenOrderSchema)))}var zc={after:z$1.string().optional(),before:z$1.string().optional(),cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),makerAddress:z$1.string().optional(),market:z$1.string().optional()},_c=Te(zc).default({}),nh=o(h$1,g,n,c,b,a);function Ln(e,r){let t=l(r,_c),{cursor:o}=t;return C(n=>e.secureClob.get("/data/trades",{params:R({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,id:t.id,makerAddress:t.makerAddress,market:t.market,nextCursor:n},h({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 sh=o(h$1,g,n,c,b),Wc=z$1.object({ids:z$1.array(z$1.string()).min(1)});async function ah(e){let r=ye(e.account.walletType);return unwrap(e.secureClob.get("/notifications",{params:R({signatureType:r},h())}).andThen(y(NotificationsResponseSchema)))}var ih=o(h$1,g,n,c,b,a);async function ph(e,r){let t=l(r,Wc),o=ye(e.account.walletType),n=R({ids:t.ids.join(","),signatureType:o},h());await unwrap(e.secureClob.del("/notifications",{params:n}));}var Mn=z$1.object({assetType:AssetTypeSchema}),jc=Te(Mn.shape),ch=o(h$1,g,n,c,b,a);async function qt(e,r){let t=l(r,jc),o=ye(e.account.walletType);return unwrap(e.secureClob.get("/balance-allowance",{params:R({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:o},h())}).andThen(y(BalanceAllowanceResponseSchema)))}var Hc=Te(Mn.shape),dh=o(h$1,g,n,c,b,a);async function Fn(e,r){let t=l(r,Hc),o=ye(e.account.walletType),n=R({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:o},h());return await unwrap(e.secureClob.get("/balance-allowance/update",{params:n})),qt(e,t)}var Nc=z$1.object({orderId:z$1.string()}),uh=o(h$1,g,n,c,b,a);async function lh(e,r){let t=l(r,Nc);return (await unwrap(e.secureClob.get("/order-scoring",{params:R(t,h())}).andThen(y(OrderScoringResponseSchema)))).scoring}var Gc=z$1.object({orderIds:z$1.array(z$1.string())}),mh=o(h$1,g,n,c,b,a);async function fh(e,r){let o=l(r,Gc).orderIds;return unwrap(e.secureClob.post("/orders-scoring",{json:o}).andThen(y(OrdersScoringResponseSchema)))}var Bn=z$1.object({cursor:PaginationCursorSchema.optional(),date:z$1.string()}),yh=o(h$1,g,n,c,b,a);function Ph(e,r){let{cursor:t,...o}=l(r,Bn),n=ye(e.account.walletType);return C(s=>e.secureClob.get("/rewards/user",{params:R({...o,nextCursor:s,signatureType:n},h())}).andThen(y(UserEarningsPageSchema)).map(a=>({items:a.data,hasMore:a.nextCursor!==END_CURSOR,nextCursor:a.nextCursor===END_CURSOR?void 0:toPaginationCursor(a.nextCursor)})),t)}var gh=o(h$1,g,n,c,b,a);async function Rh(e,r){let t=l(r,Bn),o=ye(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/total",{params:R({...t,signatureType:o},h())}).andThen(y(TotalUserEarningsResponseSchema)))}var Kc=z$1.object({cursor:PaginationCursorSchema.optional(),date:z$1.string(),noCompetition:z$1.boolean().optional(),orderBy:z$1.string().optional(),pageSize:A.max(500).default(100),position:z$1.string().optional()}),Eh=o(h$1,g,n,c,b,a);function Sh(e,r){let{cursor:t,...o}=l(r,Kc),n=ye(e.account.walletType);return C(s=>e.secureClob.get("/rewards/user/markets",{params:R({...o,nextCursor:s,signatureType:n},h())}).andThen(y(UserRewardsEarningsPageSchema)).map(a=>({items:a.data,hasMore:a.nextCursor!==END_CURSOR,nextCursor:a.nextCursor===END_CURSOR?void 0:toPaginationCursor(a.nextCursor)})),t)}var hh=o(h$1,g,n,c,b);async function Th(e){let r=ye(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/percentages",{params:R({signatureType:r},h())}).andThen(y(RewardsPercentagesSchema)))}var Zc=z$1.enum(["CASH","TOKENS"]),Jc=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:A.max(1e4).default(20),takerOnly:z$1.boolean().optional(),filterType:Zc.optional(),filterAmount:z$1.number().optional(),market:z$1.array(z$1.string()).optional(),eventId:z$1.array(z$1.number().int()).optional(),user:z$1.string().optional(),side:SideSchema.optional(),start:z$1.number().int().min(0).optional(),end:z$1.number().int().min(0).optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}).refine(e=>e.filterType===void 0==(e.filterAmount===void 0),{message:"Provide filterType and filterAmount together",path:["filterAmount"]}),wh=o(h$1,g,c,b,a);function Lh(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,Jc);return C(s=>{let a=_(s,o);return e.data.get("/trades",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListTradesResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var Xc=z$1.enum(["TIMESTAMP","TOKENS","CASH"]),ed=z$1.enum(["ASC","DESC"]),rd=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:A.max(500).default(20),user:z$1.string(),market:z$1.array(z$1.string()).optional(),eventId:z$1.array(z$1.number().int()).optional(),type:z$1.array(ActivityTypeSchema).optional(),start:z$1.number().int().min(0).optional(),end:z$1.number().int().min(0).optional(),sortBy:Xc.optional(),sortDirection:ed.optional(),side:SideSchema.optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),Mh=o(h$1,g,c,b,a);function Fh(e,r){let{cursor:t,pageSize:o,...n}=l(r,rd);return C(s=>{let a=_(s,o);return e.data.get("/activity",{params:K({...n,excludeDepositsWithdrawals:false,limit:a.pageSize,offset:a.offset})}).andThen(y(ListActivityResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var td=z$1.union([ComboConditionIdSchema,z$1.array(ComboConditionIdSchema)]),od=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:A.default(50),user:z$1.string(),conditionId:td.optional()}),Bh=o(h$1,g,c,b,a);function Uh(e,r){let{cursor:t,pageSize:o,conditionId:n,...s}=l(r,od);return C(a=>{let m=R({...s,limit:o,cursor:a},h());return nd(m,n),e.data.get("/v1/activity/combos",{params:m}).andThen(y(ListComboActivityResponseSchema)).map(P=>{let x=P.pagination.nextCursor??void 0;return {items:P.activity,hasMore:x!==void 0,nextCursor:x}})},t)}function nd(e,r){r!==void 0&&e.append("market_id",Array.isArray(r)?r.join(","):r);}var ad=64,id=/^0x[0-9a-fA-F]{62}$/,pd=/^0x[0-9a-fA-F]{64}$/,At="0x0000000000000000000000000000000000000000000000000000000000000000",cd=AbiFunction.from("function approve(address spender, uint256 amount)"),_n=AbiFunction.from("function allowance(address owner, address spender) view returns (uint256)"),dd=AbiFunction.from("function transfer(address recipient, uint256 amount)"),ud=AbiFunction.from("function authorizeSessionSigner(address sessionSigner, uint256 validUntil)"),ld=AbiFunction.from("function revokeSessionSigner(address sessionSigner)"),md=AbiFunction.from("function deposit(address token, uint256 amount, address to)"),fd=AbiFunction.from("function setApprovalForAll(address operator, bool approved)"),Wn=AbiFunction.from("function isApprovedForAll(address account, address operator) view returns (bool)"),jn=AbiFunction.from("function balanceOf(address account, uint256 id) view returns (uint256)"),Hn=AbiFunction.from("function balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])"),yd=AbiFunction.from("function splitPosition(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),Pd=AbiFunction.from("function mergePositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),gd=AbiFunction.from("function redeemPositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] indexSets)"),Rd=AbiFunction.from("function split(bytes31 conditionId, uint256 amount)"),Ed=AbiFunction.from("function merge(bytes31 conditionId, uint256 amount)"),Sd=AbiFunction.from("function redeem(bytes31 conditionId, uint256 outcomeIndex, uint256 amount)"),hd=AbiFunction.from("function prepareCondition(uint256[] legs) returns (bytes31)"),Td=AbiFunction.from("function multiSend(bytes)"),xd=AbiFunction.from("function proxy((uint8 typeCode, address to, uint256 value, bytes data)[] calls) returns (bytes[])"),Nn=[1n,2n],Cd=[1n,2n],re=(1n<<256n)-1n,Nh=o(a);function Br(e,r,t){if(t<0n)throw new a("Approval amount must be non-negative");if(t>re)throw new a("Approval amount exceeds uint256 range");return {data:Id(r,t),to:e}}function Gn(e,r,t){return {data:AbiFunction.encodeData(_n,[r,t]),to:e}}function Kn(e){return AbiFunction.decodeResult(_n,e)}function Ur(e,r,t){return {data:bd(r,t),to:e}}function Vn(e,r,t){return {data:AbiFunction.encodeData(Wn,[r,t]),to:e}}function $n(e){return AbiFunction.decodeResult(Wn,e)}function Yn(e,r,t){return {data:AbiFunction.encodeData(jn,[r,ge(BigInt(t),"Position ID")]),to:e}}function Qn(e){return AbiFunction.decodeResult(jn,e)}function Dr(e,r,t){return {data:AbiFunction.encodeData(Hn,[t.map(()=>r),t.map(o=>ge(BigInt(o),"id"))]),to:e}}function zr(e){return AbiFunction.decodeResult(Hn,e)}var Gh=o(a);function Ot(e,r,t){if(t<0n)throw new a("Transfer amount must be non-negative");if(t>re)throw new a("Transfer amount exceeds uint256 range");return {data:kd(r,t),to:e}}function Zn(e,r,t){return {data:AbiFunction.encodeData(ud,[r,ge(t,"Session key expiry")]),to:e}}function Jn(e,r){return {data:AbiFunction.encodeData(ld,[r]),to:e}}var Kh=o(a);function Xn(e,r,t,o){if(t<=0n)throw new a("Perps deposit amount must be positive");return {data:AbiFunction.encodeData(md,[r,ge(t,"Perps deposit amount"),o]),to:e}}var Vh=o(a);function es(e,r,t,o){return {data:qd(r,t,o),to:e}}var $h=o(a);function rs(e,r,t,o){return {data:vd(r,t,o),to:e}}var Yh=o(a);function ts(e,r,t){return {data:Ad(r,t),to:e}}var Qh=o(a);function wt(e,r,t){return {data:AbiFunction.encodeData(Rd,[Ft(r),ge(t,"Split amount")]),to:e}}var Zh=o(a);function Lt(e,r,t){return {data:AbiFunction.encodeData(Ed,[Ft(r),ge(t,"Merge amount")]),to:e}}var Jh=o(a);function _r(e,r,t,o){return {data:AbiFunction.encodeData(Sd,[Ft(r),BigInt(Od(t)),ge(o,"Redeem amount")]),to:e}}var Xh=o(a);function Mt(e,r){return {data:AbiFunction.encodeData(hd,[r.map(t=>ge(t,"Leg position ID"))]),to:e}}function Id(e,r){return invariant(r>=0n,"Approval amount must be non-negative"),AbiFunction.encodeData(cd,[e,r])}function bd(e,r){return AbiFunction.encodeData(fd,[e,r])}function kd(e,r){return AbiFunction.encodeData(dd,[e,r])}function qd(e,r,t){return AbiFunction.encodeData(yd,[e,At,r,Nn,ge(t,"Split amount")])}function vd(e,r,t){return AbiFunction.encodeData(Pd,[e,At,r,Nn,ge(t,"Merge amount")])}function Ad(e,r){return AbiFunction.encodeData(gd,[e,At,r,Cd])}function ge(e,r){if(e<0n)throw new a(`${r} must be non-negative`);if(e>re)throw new a(`${r} exceeds uint256 range`);return e}function Ft(e){if(id.test(e))return e.toLowerCase();if(pd.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 Od(e){if(e!==0&&e!==1)throw new a("Protocol v2 outcome index must be 0 or 1");return e}function os(e){return AbiFunction.encodeData(xd,[e.map(r=>({typeCode:1,to:r.to,value:r.value??0n,data:r.data}))])}function ns(e){let r=e.map(t=>wd(t));return AbiFunction.encodeData(Td,[r.length===0?"0x":AbiParameters.encodePacked(Array.from({length:r.length},()=>"bytes"),r)])}function wd(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 oT=o(h$1,g,i,j,c,b,a);function V(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,n);o(k,n);function pT(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 W(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 ss(){return {kind:"requestAddress"}}function $(e,r){return {chainId:e,...r}}var Gd=[{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Kd=[{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"}],Vd="DepositWallet",$d="1",Yd=600,Qd=[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],Zd=[{name:"wallet",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"calls",type:"Call[]"}],Jd=z$1.object({address:z$1.string(),type:z$1.enum(RelayerTransactionType)}),xT=o(h$1,g,c,b,a);async function Dt(e,r){let t=l(r,Jd);return unwrap(e.relayer.get("/v1/account/transactions/params",{params:R(t,{address:"address",type:"type"})}).andThen(y(RelayerExecuteParamsSchema)))}var Xd=z$1.object({transactionId:TransactionIdSchema}),eu=z$1.object({wallet:EvmAddressSchema,type:z$1.enum(WalletType)}),CT=o(h$1,g,c,b,a);async function IT(e,r){let t=await ru(e,r);return t.type===WalletType.EOA?false:unwrap(e.relayer.get("/deployed",{params:R({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 ru(e,r){if(r!==void 0)return l(r,eu);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 An(e.rpc,e.account.signer,e.environment.walletDerivation),type:WalletType.DEPOSIT_WALLET}}var Q=z$1.string().max(500),as=10,bT=o(h$1,g,c,b,a);async function kT(e){return invariant(e.supportsGasless,"Deposit Wallet deployment requires a Relayer API Key or Builder API Key in the client configuration."),yr(e,{from:e.account.signer,metadata:"Deploy Deposit Wallet",to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET_CREATE})}async function tu(e,r){let t=l(r,Xd);return unwrap(e.relayer.get(`/v1/account/transactions/${t.transactionId}`).andThen(y(GaslessTransactionSchema)))}var ou=z$1.object({data:z$1.custom(isHexString),to:EvmAddressSchema,value:z$1.bigint().optional()}),nu=z$1.object({calls:z$1.array(ou).min(1).transform(e=>expectNonEmptyArray(e)),metadata:Q}),qT=o(h$1,g,c,b,a);async function X(e,r){let t=l(r,nu);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 ss());invariant(o===e.account.signer,"Wallet client address does not match the authenticated signer");for(let n=0;n<=as;n+=1)try{switch(e.account.walletType){case WalletType.POLY_PROXY:return yield*su(e,t);case WalletType.DEPOSIT_WALLET:return yield*au(e,t);case WalletType.GNOSIS_SAFE:return yield*iu(e,t)}invariant(!1,"Unsupported wallet type for gasless transaction");}catch(s){if(!Ht(s)||n===as)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected gasless transaction retry loop to return");}.call(null)}async function*su(e,r){let t=yield*zt(e,r.calls,r.metadata);return yr(e,t)}async function*zt(e,r,t){let o=await Dt(e,{address:e.account.signer,type:RelayerTransactionType.PROXY}),n=e.environment.walletDerivation.proxyFactory,s=os(r),a="0",m="0",P=(await e.rpc.ethEstimateGas({data:s,from:e.account.signer,to:n})).toString(),x=e.environment.contracts.relayHub,I=o.address,j=uu(e.account.signer,n,s,a,m,P,o.nonce,x,I),B=expectEvmSignature(yield us(j));return {data:s,from:e.account.signer,...t!==void 0&&{metadata:t},nonce:o.nonce,proxyWallet:e.account.wallet,signature:B,signatureParams:{gasLimit:P,gasPrice:m,relay:I,relayHub:x,relayerFee:a},to:n,type:RelayerTransactionType.PROXY}}function _t(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*Je(e,r.calls,r.metadata);try{return await yr(e,t)}catch(o){let n=_t(o);if(n===void 0)throw o;let s=yield*Wt(e,t,r.calls,n);return yr(e,s)}}async function*Je(e,r,t){let o=await Dt(e,{address:e.account.signer,type:RelayerTransactionType.WALLET}),n=r.map(cs),s=`${Math.floor(Date.now()/1e3)+Yd}`,a=Ye(e.account,expectEvmSignature(yield ls(ds({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:a,to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET}}async function*Wt(e,r,t,o){let n=Ye(e.account,expectEvmSignature(yield ls(ds({calls:t.map(cs),chainId:e.environment.chainId,deadline:r.depositWalletParams.deadline,nonce:o,wallet:e.account.wallet}))));return {...r,nonce:o,signature:n}}async function*iu(e,r){let t=yield*jt(e,r.calls,r.metadata);return yr(e,t)}async function*jt(e,r,t){let o=await Dt(e,{address:e.account.signer,type:RelayerTransactionType.SAFE}),n=pu(r,e.environment.contracts.safeMultisend),s=du({chainId:e.environment.chainId,data:n.data,nonce:o.nonce,operation:n.operation,safeAddress:e.account.wallet,to:n.to,value:n.value}),a=expectEvmSignature(yield us(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:lu(a),signatureParams:cu(n.operation),to:n.to,type:RelayerTransactionType.SAFE,value:n.value>0n?`${n.value}`:void 0}}async function yr(e,r){let t=l(r,RelayerExecuteRequestSchema),o=await unwrap(e.relayer.post("/submit",{json:t}).andThen(y(RelayerExecuteResponseSchema)));return new ve(e,o)}function Ht(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 cs(e){return {data:e.data,target:e.to,value:`${e.value??0n}`}}function ds(e){return {domain:{chainId:e.chainId,name:Vd,verifyingContract:e.wallet,version:$d},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:Zd,Call:Qd}}}function pu(e,r){if(e.length===1){let[t]=e;return {data:t.data,operation:0,to:t.to,value:t.value??0n}}return {data:ns(e),operation:1,to:r,value:0n}}function cu(e){return {baseGas:"0",gasPrice:"0",gasToken:ZERO_ADDRESS,operation:`${e}`,refundReceiver:ZERO_ADDRESS,safeTxnGas:"0"}}function du(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:Gd,SafeTx:Kd}}}function us(e){return {kind:"signGaslessMessage",payload:e}}function ls(e){return {kind:"signGaslessTypedData",payload:e}}function uu(e,r,t,o,n,s,a,m,P){return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromString("rlx:"),Bytes.fromHex(e),Bytes.fromHex(r),Bytes.fromHex(t),Bytes.fromNumber(BigInt(o),{size:32}),Bytes.fromNumber(BigInt(n),{size:32}),Bytes.fromNumber(BigInt(s),{size:32}),Bytes.fromNumber(BigInt(a),{size:32}),Bytes.fromHex(m),Bytes.fromHex(P)),{as:"Hex"}))}function lu(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 vT=o(h$1,g,c,b,a,i,j),ve=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 tu(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 mu=z$1.object({amount:z$1.union([z$1.bigint(),z$1.literal("max")]),metadata:Q.optional(),spenderAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),_T=o(a);async function fu(e,r){let t=l(r,mu),o=t.amount==="max"?re:t.amount;return async function*(){return e.account.walletType===WalletType.EOA?V(yield ys($(e.environment.chainId,Br(t.tokenAddress,t.spenderAddress,o)))):yield*await X(e,{calls:[Br(t.tokenAddress,t.spenderAddress,o)],metadata:t.metadata??`Approve ${t.amount} of ${t.tokenAddress} to ${t.spenderAddress}`})}.call(null)}var WT=o(k,h$1,g,n,c,b,a);function ms(e,r){return fu(e,r).then(W(e.signer))}var yu=z$1.object({approved:z$1.boolean().default(true),metadata:Q.optional(),operatorAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),jT=o(a);async function Pu(e,r){let t=l(r,yu);return async function*(){return e.account.walletType===WalletType.EOA?V(yield Ps($(e.environment.chainId,Ur(t.tokenAddress,t.operatorAddress,t.approved)))):yield*await X(e,{calls:[Ur(t.tokenAddress,t.operatorAddress,t.approved)],metadata:t.metadata??`${t.approved?"Approve":"Revoke"} ${t.operatorAddress} on ${t.tokenAddress}`})}.call(null)}var HT=o(k,h$1,g,n,c,b,a);function fs(e,r){return Pu(e,r).then(W(e.signer))}var NT=o(g,c,b,a);async function gu(e){let r=await Ru(e),t=r.erc20.map(n=>Br(n.tokenAddress,n.spenderAddress,n.amount)),o=r.erc1155.map(n=>Ur(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 V(yield ys($(e.environment.chainId,s))).wait();for(let s of o)await V(yield Ps($(e.environment.chainId,s))).wait();return}await(yield*await X(e,{calls:[...t,...o],metadata:"Trading setup approvals"})).wait();}.call(null)}var GT=o(k,h$1,g,n,i,j,c,b,a);function KT(e){return gu(e).then(W(e.signer)).then(()=>{})}async function Ru(e){let r=Eu(e),t=[...r.erc20.map(a=>Gn(a.tokenAddress,e.account.wallet,a.spenderAddress)),...r.erc1155.map(a=>Vn(a.tokenAddress,e.account.wallet,a.operatorAddress))],o=await e.rpc.ethCallBatch(t),n=o.slice(0,r.erc20.length),s=o.slice(r.erc20.length);return {erc20:r.erc20.filter((a,m)=>Kn(n[m])<a.amount),erc1155:r.erc1155.filter((a,m)=>!$n(s[m]))}}function Eu(e){let{contracts:r}=e.environment;return {erc20:[{amount:re,spenderAddress:r.standardExchange,tokenAddress:r.collateralToken},{amount:re,spenderAddress:r.negRiskExchange,tokenAddress:r.collateralToken},{amount:re,spenderAddress:r.collateralAdapter,tokenAddress:r.collateralToken},{amount:re,spenderAddress:r.negRiskCollateralAdapter,tokenAddress:r.collateralToken},{amount:re,spenderAddress:r.protocolV2Router,tokenAddress:r.collateralToken},{amount:re,spenderAddress:r.exchangeV3,tokenAddress:r.collateralToken},{amount:re,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 ys(e){return {kind:"sendErc20ApprovalTransaction",request:e}}function Ps(e){return {kind:"sendErc1155ApprovalForAllTransaction",request:e}}var XT=o(h$1,g,c,b);async function xu(e,r){return unwrap(e.clob.post("/auth/api-key",{headers:Es(r)}).andThen(y(ApiKeyCredsSchema)))}var ex=o(h$1,g,c,b);async function Cu(e,r){return unwrap(e.clob.get("/auth/derive-api-key",{headers:Es(r)}).andThen(y(ApiKeyCredsSchema)))}var rx=o(h$1,g,c,b);async function tx(e,r){try{return await xu(e,r)}catch(t){if(!(t instanceof g)||t.status!==400)throw t}return Cu(e,r)}var ox=o(h$1,g,n,c,b);async function nx(e){return (await unwrap(e.secureClob.get("/auth/api-keys").andThen(y(ApiKeysResponseSchema)))).apiKeys}var sx=o(h$1,g,n,c,b);async function ax(e){await unwrap(e.secureClob.del("/auth/api-key").andThen(y(z$1.literal("OK"))));}var ix=o(h$1,g,n,c,b);async function px(e){return unwrap(e.secureClob.post("/auth/builder-api-key").andThen(y(BuilderApiKeyCredsSchema)))}var cx=o(h$1,g,n,c,b);async function dx(e){return unwrap(e.secureClob.get("/auth/builder-api-key").andThen(y(BuilderApiKeysResponseSchema)))}var ux=o(h$1,g,n,c,b);async function lx(e){await unwrap(e.clob.del("/auth/builder-api-key").andThen(y(z$1.literal("OK"))));}function Es(e){return {POLY_ADDRESS:e.address,POLY_NONCE:`${e.nonce}`,POLY_SIGNATURE:e.signature,POLY_TIMESTAMP:`${e.timestamp}`}}var vu=z$1.object({after:z$1.string().optional(),before:z$1.string().optional(),builderCode:BuilderCodeSchema,cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),market:z$1.string().optional()}),Au=Te(vu.shape),xx=o(h$1,g,c,b,a);function Cx(e,r){let t=l(r,Au),{cursor:o}=t;return C(n=>e.clob.get("/builder/trades",{params:R({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,builderCode:t.builderCode,id:t.id,market:t.market,nextCursor:n},h({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 Zu=J({}),Bx=o(h$1,g,c,b,a);async function Ux(e,r){let t=l(r,Zu);return (await unwrap(e.clob.get("/midpoint",{params:Ue(t)}).andThen(y(MidpointSchema)))).mid}var Ju=z$1.array(J({})).min(1),Dx=o(h$1,g,c,b,a);async function zx(e,r){let t=l(r,Ju);return unwrap(e.clob.post("midpoints",{json:Vr(t)}).andThen(y(MidpointsSchema)))}var Xu=J({}),_x=o(h$1,g,c,b,a);async function Wx(e,r){let t=l(r,Xu);return (await unwrap(e.clob.get("/tick-size",{params:Ue(t)}).andThen(y(FetchTickSizeResponseSchema)))).minimumTickSize}var el=J({}),jx=o(h$1,g,c,b,a);async function Hx(e,r){let t=l(r,el);return (await unwrap(e.clob.get("/neg-risk",{params:Ue(t)}).andThen(y(FetchNegRiskResponseSchema)))).negRisk}var rl=J({}),Nx=o(h$1,g,c,b,a);async function Is(e,r){let t=l(r,rl);return unwrap(e.clob.get(`/markets-by-token/${t.assetId??t.tokenId}`).andThen(y(ResolveConditionByTokenResponseSchema)))}var tl=z$1.object({conditionId:ConditionIdSchema}),Gx=o(h$1,g,c,b,a);async function bs(e,r){let t=l(r,tl);return unwrap(e.clob.get(`/clob-markets/${t.conditionId}`).andThen(y(FetchMarketInfoResponseSchema)))}var ol=z$1.object({builderCode:BuilderCodeSchema}),Kx=o(h$1,g,c,b,a);async function ks(e,r){let t=l(r,ol);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 nl=J({side:OrderSideSchema}),Vx=o(h$1,g,c,b,a);async function $x(e,r){let t=l(r,nl);return (await unwrap(e.clob.get("/price",{params:Ue(t)}).andThen(y(PriceSchema)))).price}var sl=z$1.array(J({side:OrderSideSchema})).min(1),Yx=o(h$1,g,c,b,a);async function Qx(e,r){let t=l(r,sl);return unwrap(e.clob.post("prices",{json:yl(t)}).andThen(y(PricesSchema)))}var al=J({}),Zx=o(h$1,g,c,b,a);async function Kr(e,r){let t=l(r,al);return unwrap(e.clob.get("/book",{params:Ue(t)}).andThen(y(FetchOrderBookResponseSchema)))}var il=z$1.array(J({})).min(1),Jx=o(h$1,g,c,b,a);async function Xx(e,r){let t=l(r,il);return unwrap(e.clob.post("books",{json:Vr(t)}).andThen(y(OrderBooksSchema)))}var pl=J({}),eC=o(h$1,g,c,b,a);async function rC(e,r){let t=l(r,pl);return (await unwrap(e.clob.get("/spread",{params:Ue(t)}).andThen(y(SpreadSchema)))).spread}var cl=z$1.array(J({})).min(1),tC=o(h$1,g,c,b,a);async function oC(e,r){let t=l(r,cl);return unwrap(e.clob.post("spreads",{json:Vr(t)}).andThen(y(SpreadsSchema)))}var dl=J({}),nC=o(h$1,g,c,b,a);async function sC(e,r){let t=l(r,dl);return unwrap(e.clob.get("/last-trade-price",{params:Ue(t)}).andThen(y(LastTradePriceSchema)))}var ul=z$1.array(J({})).min(1),aC=o(h$1,g,c,b,a);async function iC(e,r){let t=l(r,ul);return unwrap(e.clob.post("last-trades-prices",{json:Vr(t)}).andThen(y(LastTradePricesSchema)))}var ll=J({startTs:z$1.number().int().optional(),endTs:z$1.number().int().optional(),fidelity:z$1.number().int().positive().optional(),interval:PriceHistoryIntervalSchema.optional()}),pC=o(h$1,g,c,b,a);async function cC(e,r){let t=l(r,ll);return (await unwrap(e.clob.get("/prices-history",{params:R({market:t.assetId??t.tokenId,startTs:t.startTs,endTs:t.endTs,fidelity:t.fidelity,interval:t.interval},{market:"market",startTs:"startTs",endTs:"endTs",fidelity:"fidelity",interval:"interval"})}).andThen(y(PriceHistorySchema)))).history}var ml=z$1.object({cursor:PaginationCursorSchema.optional(),sponsored:z$1.boolean().optional()}).default({}),dC=o(h$1,g,c,b,a);function uC(e,r={}){let{cursor:t,...o}=l(r,ml);return C(n=>e.clob.get("/rewards/markets/current",{params:R({...o,nextCursor:n},h())}).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 fl=z$1.object({conditionId:ConditionIdSchema,cursor:PaginationCursorSchema.optional(),sponsored:z$1.boolean().optional()}),lC=o(h$1,g,c,b,a);function mC(e,r){let{cursor:t,...o}=l(r,fl);return C(n=>e.clob.get(`rewards/markets/${o.conditionId}`,{params:R({nextCursor:n,sponsored:o.sponsored},h())}).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 Vr(e){return e.map(r=>({token_id:r.assetId??r.tokenId}))}function yl(e){return e.map(r=>({token_id:r.assetId??r.tokenId,side:r.side}))}function Ue(e){let{assetId:r,tokenId:t,...o}=e;return R({...o,tokenId:e.assetId??e.tokenId},h())}var Os=2*6e4,IC=o(h$1,g,c,b);async function bC(e){return ws(e),unwrap(e.combos.post("/v1/collateral-return/plan",{json:{wallet:e.account.wallet},timeout:Os}).andThen(y(CollateralReturnPlanResponseSchema)))}var xl=z$1.object({plan:CollateralReturnPlanSchema}),qs=10,Gt="Collateral return",kC=o(g,c,b,a);async function Cl(e,r){let{plan:t}=l(r,xl);if(invariant(e.supportsGasless,"Collateral return execution requires a Relayer API Key or Builder API Key in the client configuration."),ws(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<=qs;n+=1)try{let s=yield*Il(e,o);try{return await vs(e,t.planHash,s)}catch(a){let m=_t(a);if(m===void 0||s.type!==RelayerTransactionType.WALLET)throw a;let P=yield*Wt(e,s,o,m);return await vs(e,t.planHash,P)}}catch(s){if(!Ht(s)||n===qs)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected collateral return submit retry loop to return");}.call(null)}var qC=o(k,h$1,g,n,c,b,a);function vC(e,r){return Cl(e,r).then(W(e.signer))}function ws(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 Il(e,r){switch(e.account.walletType){case WalletType.GNOSIS_SAFE:return jt(e,r,Gt);case WalletType.POLY_PROXY:return zt(e,r,Gt);default:return Je(e,r,Gt)}}async function vs(e,r,t){let o=await unwrap(e.combos.post("/v1/collateral-return/submit",{json:{envelope:t,plan_hash:r},timeout:Os}).andThen(y(RelayerExecuteResponseSchema)));return new ve(e,o)}var Ol=z$1.object({ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:A.max(100).default(20),getPositions:z$1.boolean().optional(),holdersOnly:z$1.boolean().optional(),order:z$1.string().optional(),parentEntityId:z$1.union([EventIdSchema,SeriesIdSchema]),parentEntityType:CommentParentEntityTypeSchema}),wl=z$1.object({getPositions:z$1.boolean().optional(),id:CommentIdSchema}),Ll=z$1.object({address:z$1.string(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),order:z$1.string().optional(),pageSize:A.max(100).default(20)}),jC=o(h$1,g,c,b,a);function HC(e,r){let{cursor:t,pageSize:o,...n}=l(r,Ol);return C(s=>{let a=_(s,o);return e.gamma.get("/comments",{params:R({ascending:n.ascending,getPositions:n.getPositions,holdersOnly:n.holdersOnly,limit:a.pageSize,offset:a.offset,order:n.order,parentEntityId:n.parentEntityId,parentEntityType:n.parentEntityType},h())}).andThen(y(ListCommentsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var NC=o(h$1,g,c,b,a);async function GC(e,r){let t=l(r,wl);return unwrap(e.gamma.get(`comments/${t.id}`,{params:R({getPositions:t.getPositions},h())}).andThen(y(ListCommentsResponseSchema)))}var KC=o(h$1,g,c,b,a);function VC(e,r){let{address:t,cursor:o,pageSize:n,...s}=l(r,Ll);return C(a=>{let m=_(a,n);return e.gamma.get(`comments/user_address/${t}`,{params:R({ascending:s.ascending,limit:m.pageSize,offset:m.offset,order:s.order},h())}).andThen(y(ListCommentsResponseSchema)).map(P=>{let x=P.length>=m.pageSize;return {items:P,hasMore:x,nextCursor:x?z({offset:m.offset+m.pageSize,pageSize:m.pageSize}):void 0}})},o)}function $r(e,r){let t;try{t=new URL(e);}catch(m){throw new a("Expected a valid Polymarket URL.",{cause:m})}if(t.protocol!=="https:"||t.hostname!=="polymarket.com"&&t.hostname!=="www.polymarket.com")throw new a("Expected a valid Polymarket URL.");let[o,n,...s]=t.pathname.split("/").filter(Boolean),a$1=s[0];if(r==="market"&&o==="event"&&n!==void 0&&s.length<=1)return a$1??n;if(o!==r||n===void 0||s.length>0)throw new a(`Expected a Polymarket ${r} URL.`);return n}var zl=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().default(false),cursor:PaginationCursorSchema.optional(),pageSize:A.optional(),cyom:z$1.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),ended:z$1.boolean().optional(),eventDate:IsoCalendarDateStringSchema.optional(),eventWeek:z$1.number().int().optional(),excludeTagIds:z$1.array(z$1.number().int()).optional(),featured:z$1.boolean().optional(),featuredOrder:z$1.boolean().optional(),gameIds:z$1.array(z$1.number().int()).optional(),ids:z$1.array(z$1.number().int()).optional(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeChildren:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),liquidityMax:z$1.number().optional(),liquidityMin:z$1.number().optional(),live:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),parentEventId:z$1.number().int().optional(),partnerSlug:z$1.string().optional(),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),relatedTags:z$1.boolean().optional(),seriesIds:z$1.array(z$1.number().int()).optional(),slug:z$1.array(z$1.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),startTimeMax:IsoDateTimeStringSchema.optional(),startTimeMin:IsoDateTimeStringSchema.optional(),tagIds:z$1.array(z$1.number().int()).optional(),tagMatch:z$1.enum(["any","all"]).optional(),tagSlug:z$1.string().optional(),titleSearch:z$1.string().optional(),volumeMax:z$1.number().optional(),volumeMin:z$1.number().optional()}),_l=z$1.union([z$1.object({id:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({slug:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({url:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()})]),Wl=z$1.object({id:z$1.string()}),jl=z$1.object({id:z$1.string()}),pI=o(h$1,g,c,b,a);function cI(e,r={}){let t=l(r,zl);return C(o=>e.gamma.get("/events/keyset",{params:Hl({...t,cursor:o??t.cursor})}).andThen(y(ListEventsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var dI=o(h$1,g,c,b,a);async function uI(e,r){let t=l(r,_l);if("id"in t)return unwrap(e.gamma.get(`events/${t.id}`,{params:Nl(t)}).andThen(y(EventSchema)));let o="url"in t?$r(t.url,"event"):t.slug;return unwrap(e.gamma.get(`events/slug/${o}`,{params:Gl(t)}).andThen(y(EventSchema)))}var lI=o(h$1,g,c,b,a);async function mI(e,r){let t=l(r,Wl);return unwrap(e.gamma.get(`events/${t.id}/tags`).andThen(y(FetchEventTagsResponseSchema)))}var fI=o(h$1,g,c,b,a);async function yI(e,r){let t=l(r,jl);return unwrap(e.data.get("/live-volume",{params:K(t)}).andThen(y(FetchEventLiveVolumeResponseSchema)))}function Hl(e){return R(e,h({cursor:"after_cursor",excludeTagIds:"exclude_tag_id",gameIds:"game_id",ids:"id",pageSize:"limit",seriesIds:"series_id",tagIds:"tag_id"}))}function Nl(e){return R({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},h())}function Gl(e){return R({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},h())}var Jl=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:A.max(50).default(20),timePeriod:TimePeriodSchema.optional()}),Xl=z$1.object({timePeriod:TimePeriodSchema.optional()}),em=z$1.object({category:LeaderboardCategorySchema.optional(),cursor:PaginationCursorSchema.optional(),pageSize:A.max(50).default(20),timePeriod:TimePeriodSchema.optional(),orderBy:LeaderboardOrderBySchema.optional(),user:z$1.string().optional(),userName:z$1.string().optional()}),bI=o(h$1,g,c,b,a);function kI(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,Jl);return C(s=>{let a=_(s,o);return e.data.get("/v1/builders/leaderboard",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListBuilderLeaderboardResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var qI=o(h$1,g,c,b,a);async function vI(e,r={}){let t=l(r,Xl);return unwrap(e.data.get("/v1/builders/volume",{params:K(t)}).andThen(y(ListBuilderVolumeResponseSchema)))}var AI=o(h$1,g,c,b,a);function OI(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,em);return C(s=>{let a=_(s,o);return e.data.get("/v1/leaderboard",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListTraderLeaderboardResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var om=z$1.object({marketId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),eventId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),questionId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),state:z$1.union([z$1.enum(MarketClarificationState),z$1.array(z$1.enum(MarketClarificationState))]).optional(),showInFrontend:z$1.boolean().optional(),txHash:z$1.string().optional(),order:z$1.string().optional(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:A.max(100).default(20)}),WI=o(h$1,g,c,b,a);function jI(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,om);return C(s=>{let a=_(s,o);return e.gamma.get("/market-clarifications",{params:R({...n,limit:a.pageSize,offset:a.offset},h())}).andThen(y(ListMarketClarificationsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var um=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().optional(),clobTokenIds:z$1.array(z$1.string()).optional(),cursor:PaginationCursorSchema.optional(),pageSize:A.optional(),conditionIds:z$1.array(ConditionIdSchema).optional(),cyom:z$1.boolean().optional(),decimalized:z$1.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),gameId:z$1.string().optional(),ids:z$1.array(z$1.number().int()).optional(),includeTag:z$1.boolean().optional(),liquidityNumMax:z$1.number().optional(),liquidityNumMin:z$1.number().optional(),locale:z$1.string().optional(),marketMakerAddresses:z$1.array(z$1.string()).optional(),order:z$1.string().optional(),positionIds:z$1.array(PositionIdSchema).optional(),questionIds:z$1.array(z$1.string()).optional(),relatedTags:z$1.boolean().optional(),rfqEnabled:z$1.boolean().optional(),rewardsMinSize:z$1.number().optional(),slug:z$1.array(z$1.string()).optional(),sportsMarketTypes:z$1.array(z$1.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),tagId:z$1.number().int().optional(),tagMatch:z$1.enum(["any","all"]).optional(),umaResolutionStatus:z$1.string().optional(),volumeNumMax:z$1.number().optional(),volumeNumMin:z$1.number().optional()}),lm=z$1.object({id:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),mm=z$1.object({slug:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),fm=z$1.object({url:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),ym=z$1.union([lm,mm,fm]),Pm=z$1.object({id:z$1.string()}),gm=z$1.object({limit:z$1.number().int().optional(),market:z$1.array(z$1.string()),minBalance:z$1.number().int().optional()}),Rm=z$1.object({market:z$1.array(z$1.string()).optional()}),Em=z$1.enum(["OPEN","CLOSED","ALL"]),Sm=z$1.enum(["TOKENS","CASH_PNL","REALIZED_PNL","TOTAL_PNL"]),hm=z$1.enum(["ASC","DESC"]),Tm=z$1.object({cursor:PaginationCursorSchema.optional(),market:z$1.string(),pageSize:A.max(500).default(20),user:z$1.string().optional(),status:Em.optional(),sortBy:Sm.optional(),sortDirection:hm.optional()}),tb=o(h$1,g,c,b,a);function _s(e,r={}){let t=l(r,um);return C(o=>e.gamma.get("/markets/keyset",{params:Cm({...t,cursor:o??t.cursor})}).andThen(y(ListMarketsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var xm=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:A.max(100).optional(),exclude:z$1.array(ConditionIdSchema).optional()}),ob=o(h$1,g,c,b,a);function nb(e,r={}){let t=l(r,xm);return C(o=>e.rfq.get("/v1/rfq/combo-markets",{params:Im({...t,cursor:o??t.cursor})}).andThen(y(ListComboMarketsResponseSchema)).map(n=>({items:n.markets,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var sb=o(h$1,g,c,b,a);async function ab(e,r){let t=l(r,ym);return "id"in t?bm(e,t):"url"in t?Us(e,{includeTag:t.includeTag,locale:t.locale,slug:$r(t.url,"market")}):Us(e,t)}var ib=o(h$1,g,c,b,a);async function pb(e,r){let t=l(r,Pm);return unwrap(e.gamma.get(`markets/${t.id}/tags`).andThen(y(FetchMarketTagsResponseSchema)))}var cb=o(h$1,g,c,b,a);async function db(e,r){let t=l(r,gm);return unwrap(e.data.get("/holders",{params:K(t)}).andThen(y(ListMarketHoldersResponseSchema)))}var ub=o(h$1,g,c,b,a);async function lb(e,r={}){let t=l(r,Rm);return unwrap(e.data.get("/oi",{params:K(t)}).andThen(y(ListOpenInterestResponseSchema)))}var mb=o(h$1,g,c,b,a);function fb(e,r){let{cursor:t,pageSize:o,...n}=l(r,Tm);return C(s=>{let a=_(s,o);return e.data.get("/v1/market-positions",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListMarketPositionsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}function Cm(e){return R(e,h({cursor:"after_cursor",ids:"id",marketMakerAddresses:"market_maker_address",pageSize:"limit"}))}function Im(e){return R({cursor:e.cursor,exclude:e.exclude?.join(","),pageSize:e.pageSize},{cursor:"cursor",exclude:"exclude",pageSize:"limit"})}async function Us(e,r){return unwrap(e.gamma.get(`markets/slug/${r.slug}`,{params:R({includeTag:r.includeTag,locale:r.locale},h())}).andThen(y(MarketSchema)))}async function bm(e,r){return unwrap(e.gamma.get(`markets/${r.id}`,{params:R({includeTag:r.includeTag,locale:r.locale},h())}).andThen(y(MarketSchema)))}function Sr(e){if(!(e instanceof g))return e;let r=km(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 km(e){if(e.status===425)return "restarting";if(e.status===503&&e.code==="post_only_mode")return "post_only"}var Am=z$1.object({orderId:z$1.string()}),Om=z$1.object({orderIds:z$1.array(z$1.string()).min(1).max(3e3)}),wm=z$1.object({market:z$1.string().optional()}),Lm=Te(wm.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"]}),kb=o(g,h$1,n,c,b,a);async function qb(e,r){let t=l(r,Am);return Zr(e,"/order",{orderID:t.orderId})}var vb=o(g,h$1,n,c,b,a);async function Ab(e,r){let t=l(r,Om);return Zr(e,"/orders",t.orderIds)}var Ob=o(g,h$1,n,c,b);async function wb(e){return Zr(e,"/cancel-all")}var Lb=o(g,h$1,n,c,b,a);async function Mb(e,r){let t=l(r,Lm);return Zr(e,"/cancel-market-orders",{asset_id:t.assetId??t.tokenId,market:t.market})}async function Zr(e,r,t){return unwrap(e.secureClob.del(r,{json:t,rateLimitBucket:"cancel"}).mapErr(Sr).andThen(y(CancelOrdersResponseSchema)))}var Hs="Polymarket CTF Exchange",Fm="DepositWallet",Bm="1",Qt="0x0000000000000000000000000000000000000000000000000000000000000000",Zt="Order(uint256 salt,address maker,address signer,uint256 tokenId,uint256 makerAmount,uint256 takerAmount,uint8 side,uint8 signatureType,uint256 timestamp,bytes32 metadata,bytes32 builder)",Um=Hash.keccak256(Bytes.fromString(Zt),{as:"Hex"}),Dm=Hash.keccak256(Bytes.fromString("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),{as:"Hex"}),zm=Hash.keccak256(Bytes.fromString(Hs),{as:"Hex"}),_m=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Ns=[{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"}],Wm=[{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 Jr(e){let r=jm(e.domain,e.order);return e.order.signatureType!==SignatureType.POLY_1271?r:{domain:Vs(e.domain),message:{chainId:e.domain.chainId,contents:r.message,name:Fm,salt:Qt,verifyingContract:e.order.signer,version:Bm},primaryType:"TypedDataSign",types:{Order:Ns,TypedDataSign:Wm}}}function Xr(e){if(e.order.signatureType!==SignatureType.POLY_1271)return e.signature;let r=Bytes.toHex(Bytes.fromString(Zt)),t=Zt.length.toString(16).padStart(4,"0");return expectErc1271Signature(`0x${e.signature.slice(2)}${Hm(e.domain).slice(2)}${Nm(e.order).slice(2)}${r.slice(2)}${t}`)}function Gs(e){return {chainId:e.chainId,exchange:e.exchange,protocolVersion:"3"}}function _b(e,r,t){return e===OrderSide.SELL?t.toString():((r*t+999999n)/1000000n).toString()}function Wb(e,r,t){return e===OrderSide.SELL?(r*t/1000000n).toString():t.toString()}function Ks(e){return {builder:e.builder??Qt,maker:e.maker,makerAmount:BigInt(e.makerAmount),metadata:e.metadata??Qt,salt:BigInt(e.salt),side:eo(e.side),signatureType:e.signatureType,signer:e.signer,takerAmount:BigInt(e.takerAmount),timestamp:BigInt(e.timestamp),tokenId:BigInt(e.tokenId)}}function jm(e,r){return {domain:Vs(e),message:Ks(r),primaryType:"Order",types:{EIP712Domain:_m,Order:Ns}}}function Vs(e){return {chainId:e.chainId,name:Hs,verifyingContract:e.exchange,version:e.protocolVersion}}function Hm(e){return expectHexString(Hash.keccak256(AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"address"}],[Dm,zm,Gm(e.protocolVersion),BigInt(e.chainId),e.exchange]),{as:"Hex"}))}function Nm(e){let r=Ks(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"}],[Um,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 Gm(e){return expectHexString(Hash.keccak256(Bytes.fromString(e),{as:"Hex"}))}function eo(e){return e===0||e===1?e:e===OrderSide.BUY?0:1}var Ae=z$1.object({tokenId:TokenIdSchema,positionId:z$1.never().optional()}),Oe=z$1.object({positionId:PositionIdSchema,tokenId:z$1.never().optional()});function ze(e){return e.positionId!==void 0?{assetId:toPositionId(e.positionId),exchangeVersion:"3"}:{assetId:toTokenId(e.tokenId),exchangeVersion:"2"}}var Zs=z$1.object({orderType:z$1.union([z$1.literal(OrderType.FAK),z$1.literal(OrderType.FOK)]).default(OrderType.FOK)}),$s=Zs.extend({side:z$1.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema}),Ys=Zs.extend({side:z$1.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema}),Zm=z$1.union([$s.extend(Ae.shape),$s.extend(Oe.shape),Ys.extend(Ae.shape),Ys.extend(Oe.shape)]),Xb=o(l$1,h$1,g,c,b,a);async function ek(e,r){let t=l(r,Zm),o=t.side===OrderSide.BUY?t.amount:t.shares,n=t.positionId??t.tokenId;return Jm(e,{amount:o,assetId:n,orderType:t.orderType,side:t.side})}async function Jm(e,r){let t=await Kr(e,{assetId:r.assetId});return ro({amount:r.amount,orderBook:t,orderType:r.orderType,side:r.side})}function ro(e){let{orderBook:r}=e,t=e.side===OrderSide.BUY?ef(r.asks,e.amount,e.orderType):rf(r.bids,e.amount,e.orderType);return invariant(Xm(t,r.tickSize),`Resolved market price fell outside the valid range for tick size ${r.tickSize}.`),t}function Xm(e,r){return e>=r&&e<=1-r}function ef(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 a=e[s];if(a!==void 0&&(o+=Number.parseFloat(a.size)*Number.parseFloat(a.price),o>=r))return Number.parseFloat(a.price)}if(t===OrderType.FOK)throw new l$1("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}function rf(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 a=e[s];if(a!==void 0&&(o+=Number.parseFloat(a.size),o>=r))return Number.parseFloat(a.price)}if(t===OrderType.FOK)throw new l$1("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}var sf=BigInt(Number.MAX_SAFE_INTEGER),af=z$1.string().refine(cf,{message:"Order salt must be a non-negative JavaScript-safe integer."}),ea=z$1.looseObject({salt:af}),pf=z$1.array(ea).min(1).max(15),dk=o(h$1,g,n,c,b,a),uk=o(h$1,g,n,c,b,a);function tt(e){return async function(t){l(t,ea);let o=ra(e,t);return unwrap(e.secureClob.post("/order",{json:o,rateLimitBucket:"order"}).mapErr(Sr).andThen(y(OrderResponseSchema)))}}function lk(e){return async function(t){l(t,pf);let o=t.map(n=>ra(e,n));return unwrap(e.secureClob.post("/orders",{json:o,rateLimitBucket:"order"}).mapErr(Sr).andThen(y(OrderResponsesSchema)))}}function ra(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 cf(e){try{let r=BigInt(e);return r>=0n&&r<=sf}catch{return false}}var Ce=1000000n,df=8*Number.EPSILON,oo=6,uf=8*Number.EPSILON;function no(e){let r=e*Number(Ce),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 Tr(e){let r=Math.round(e*Number(Ce)),t=r/Number(Ce);if(!Number.isSafeInteger(r)||Math.abs(e-t)>df)throw new a("has unsupported precision.");return BigInt(r)}function so(e){return Number(e)/Number(Ce)}function nt(e){return invariant(Number.isInteger(e)&&e>=0&&e<=oo,`Decimal places must be an integer between 0 and ${oo}.`),10n**BigInt(oo-e)}function st(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 ao(e,r,t){let o=nt(r);return st(e,1n,o,t)*o}function io(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 at(e,r){let t=Tr(e),o=Tr(r);if(t<o||t>Ce-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 mf(e,r){return r?e.environment.contracts.negRiskExchange:e.environment.contracts.standardExchange}function we(e,r,t){return r.exchangeVersion==="3"?e.environment.contracts.exchangeV3:mf(e,t)}function po(e,r,t,o){let n=nt(t);return st(e,r,Ce*n,o)*n}function ff(e,r,t,o){let n=nt(t);return st(e,Ce,r*n,o)*n}function oa(e){let r=io(e.tickSize),t=ao(no(e.size),r.size,"down");return e.side===OrderSide.BUY?{offeredAmount:po(t,e.price,r.amount,"down"),requestedAmount:t}:{offeredAmount:t,requestedAmount:po(t,e.price,r.amount,"down")}}function na(e){let r=io(e.tickSize),t=ao(no(e.amount),r.size,"down"),o=e.protectPrice?"up":"down";return e.side===OrderSide.BUY?{offeredAmount:t,requestedAmount:ff(t,e.price,r.amount,o)}:{offeredAmount:t,requestedAmount:po(t,e.price,r.amount,o)}}var co=600*1e3,uo=Number.POSITIVE_INFINITY,lo=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:it(this.#r,r,co,()=>this.#e.fetchBuilderTakerFeeRate(r))}async fetchCurrentMarket(r){let t=await it(this.#t,r,uo,()=>this.#e.resolveCondition(r)),o=await this.#a(t);return this.#n(r,t,o),this.#o.set(t,sa(o,co)),{feeInfo:o.feeInfo,negRisk:o.negRisk,tickSize:o.tickSize}}async#s(r){let t=await it(this.#t,r,uo,()=>this.#e.resolveCondition(r)),o=await it(this.#o,t,co,()=>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,sa(r));return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize,assetIds:o}}};function it(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 sa(e,r=uo){return {expiresAt:Date.now()+r,promise:Promise.resolve(e)}}var aa=new WeakMap;function We(e,r){return mo(e).resolveMarket(r)}function xr(e,r){return mo(e).fetchCurrentMarket(r)}function ia(e,r){return mo(e).resolveBuilderTakerFeeRate(r)}function mo(e){let r=aa.get(e);if(r!==void 0)return r;let t=new lo({fetchBuilderTakerFeeRate:async o=>(await ks(e,{builderCode:o})).taker,fetchMarket:o=>bs(e,{conditionId:o}),resolveCondition:o=>Is(e,{assetId:o})});return aa.set(e,t),t}var gf=180,da=z$1.strictObject({price:PositiveDecimalNumberSchema,size:PositiveDecimalNumberSchema,side:OrderSideSchema,builderCode:BuilderCodeSchema.optional(),postOnly:z$1.boolean().default(false),expiration:z$1.number().int().nonnegative().optional()}),la=z$1.union([da.extend(Ae.shape),da.extend(Oe.shape)]).superRefine((e,r)=>{if(e.expiration!==void 0){let t=Math.floor(Date.now()/1e3)+gf;e.expiration<t&&r.addIssue({code:"custom",message:"Expiration must be at least 3 minutes in the future.",path:["expiration"]});}});async function ma(e,r){let t=ze(r),o=await Rf(e,{routing:t,price:r.price}),n=oa({price:o.price,side:r.side,size:r.size,tickSize:o.tickSize});return {...t,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:o.exchangeAddress,expiration:r.expiration??0,funderAddress:o.funderAddress,offeredAmount:n.offeredAmount,orderType:r.expiration===void 0?OrderType.GTC:OrderType.GTD,side:r.side,signer:o.signerAddress,requestedAmount:n.requestedAmount}}async function Rf(e,r){let{assetId:t}=r.routing,o=await We(e,t);try{return ua(e,r,o)}catch(n){if(!(n instanceof a))throw n;let s=await xr(e,t);return ua(e,r,s)}}function ua(e,r,t){let o=Ef(r.price,t.tickSize);return {exchangeAddress:we(e,r.routing,t.negRisk),funderAddress:e.account.wallet,price:o,signerAddress:e.account.signer,tickSize:t.tickSize}}function Ef(e,r){try{return at(e,r)}catch(t){throw t instanceof a?new a(`Price ${t.message}`,{cause:t}):t}}var Sa=z$1.object({builderCode:BuilderCodeSchema.optional(),orderType:z$1.union([z$1.literal(OrderType.FAK),z$1.literal(OrderType.FOK)]).default(OrderType.FAK)}),ya=Sa.extend({side:z$1.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema,maxSpend:PositiveDecimalNumberSchema.optional(),maxPrice:PositiveDecimalNumberSchema.optional()}),Pa=Sa.extend({side:z$1.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema,minPrice:PositiveDecimalNumberSchema.optional()}),ha=z$1.union([ya.extend(Ae.shape),ya.extend(Oe.shape),Pa.extend(Ae.shape),Pa.extend(Oe.shape)]);async function Ta(e,r){let t=ze(r),o=await hf(e,r,t),n=na({amount:o.resolvedAmount,price:o.price,protectPrice:Ca(r),side:r.side,tickSize:o.tickSize});return {...t,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:o.exchangeAddress,expiration:0,funderAddress:o.funderAddress,offeredAmount:n.offeredAmount,orderType:r.orderType,side:r.side,signer:o.signerAddress,requestedAmount:n.requestedAmount}}async function hf(e,r,t){return Ca(r)?Tf(e,r,t):xf(e,r,t)}async function Tf(e,r,t){let{assetId:o}=t,n=r.side===OrderSide.BUY?r.amount:r.shares;if(r.side===OrderSide.BUY&&r.maxSpend!==void 0){let{builderTakerFeeRate:a$1,market:m}=await Ia(e,o,r.builderCode);try{return ga(e,r,t,n,a$1,r.maxSpend,m)}catch(P){if(!(P instanceof a))throw P;let x=await xr(e,o);return ga(e,r,t,n,a$1,r.maxSpend,x)}}let s=await We(e,o);try{return Ra(e,r,t,n,s)}catch(a$1){if(!(a$1 instanceof a))throw a$1;let m=await xr(e,o);return Ra(e,r,t,n,m)}}function ga(e,r,t,o,n,s,a){let m=xa(r,a.tickSize),P=so(m);return {exchangeAddress:we(e,t,a.negRisk),funderAddress:e.account.wallet,price:m,resolvedAmount:ba({amount:o,builderTakerFeeRate:n,maxSpend:s,platformFeeExponent:a.feeInfo.exponent,platformFeeRate:a.feeInfo.rate,price:P}),signerAddress:e.account.signer,tickSize:a.tickSize}}function Ra(e,r,t,o,n){let s=xa(r,n.tickSize);return {exchangeAddress:we(e,t,n.negRisk),funderAddress:e.account.wallet,price:s,resolvedAmount:o,signerAddress:e.account.signer,tickSize:n.tickSize}}async function xf(e,r,t){let{assetId:o}=t,n=r.side===OrderSide.BUY?r.amount:r.shares,s=r.side===OrderSide.BUY&&r.maxSpend!==void 0?Ia(e,o,r.builderCode):void 0,[a,m]=await Promise.all([Kr(e,{assetId:o}),s]);if(a.assetId!==o)throw new b(`Order book returned asset ${a.assetId} for requested asset ${o}.`);let P=Tr(ro({amount:n,orderBook:a,orderType:r.orderType,side:r.side}));return {exchangeAddress:we(e,t,a.negRisk),funderAddress:e.account.wallet,price:P,resolvedAmount:Cf(r,n,so(P),m),signerAddress:e.account.signer,tickSize:a.tickSize}}function Cf(e,r,t,o){return e.side!==OrderSide.BUY||e.maxSpend===void 0||o===void 0?r:ba({amount:r,builderTakerFeeRate:o.builderTakerFeeRate,maxSpend:e.maxSpend,platformFeeExponent:o.market.feeInfo.exponent,platformFeeRate:o.market.feeInfo.rate,price:t})}function xa(e,r){return e.side===OrderSide.BUY?(invariant(e.maxPrice!==void 0,"Protected BUY market order requires maxPrice."),Ea("maxPrice",e.maxPrice,r)):(invariant(e.minPrice!==void 0,"Protected SELL market order requires minPrice."),Ea("minPrice",e.minPrice,r))}function Ea(e,r,t){try{return at(r,t)}catch(o){throw o instanceof a?new a(`${e} ${o.message}`,{cause:o}):o}}function Ca(e){return e.side===OrderSide.BUY&&e.maxPrice!==void 0||e.side===OrderSide.SELL&&e.minPrice!==void 0}async function Ia(e,r,t){let[o,n]=await Promise.all([We(e,r),ia(e,t)]);return {builderTakerFeeRate:n,market:o}}function ba(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 ka="0x0000000000000000000000000000000000000000000000000000000000000000";function yo(e,r){let t=fr(r);return {builder:e.builderCode??ka,chainId:e.chainId,exchangeAddress:e.exchangeAddress,expiration:e.expiration,maker:t.maker,makerAmount:e.offeredAmount.toString(),metadata:ka,orderType:e.orderType,protocolVersion:e.exchangeVersion,salt:If().toString(),side:e.side,signatureType:t.signatureType,signer:t.signer,takerAmount:e.requestedAmount.toString(),timestamp:Date.now().toString(),tokenId:e.assetId}}function Po(e,r){let{chainId:t,exchangeAddress:o,protocolVersion:n,...s}=e;return {...s,signature:r}}function If(){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 go(e){return Jr({domain:qa(e),order:e})}function Ro(e,r){return Xr({domain:qa(e),order:e,signature:r})}function qa(e){return {chainId:e.chainId,exchange:e.exchangeAddress,protocolVersion:e.protocolVersion}}function Eo(e){return {kind:"signOrder",payload:e}}var bf=o(l$1,h$1,g,n,c,b,a);async function So(e,r){let t=l(r,ha);return async function*(){let o=await Ta(e,t),n=yo(o,e.account),s=expectEvmSignature(yield Eo(go(n)));return Po(n,Ye(e.account,Ro(n,s)))}.call(null)}var kf=o(h$1,g,n,c,b,a);async function ho(e,r){let t=l(r,la);return async function*(){let o=await ma(e,t),n=yo(o,e.account),s=expectEvmSignature(yield Eo(go(n))),a=Po(n,Ye(e.account,Ro(n,s)));return t.postOnly===true?{...a,postOnly:true}:a}.call(null)}var dq=bf;async function uq(e,r){return Aa(e,So(e,r))}var lq=kf;async function mq(e,r){return Aa(e,ho(e,r))}async function Aa(e,r){let t=await r;return async function*(){let o=yield*t;return tt(e)(o)}.call(null)}var Af=250,Of=3e4,wf={timeoutMs:z$1.number().int().positive().optional()},Lf=z$1.object(wf).default({}),hq=o(h$1,g,n,i,j,c,b,a);function Mf(e){return e.status===TradeStatus.Confirmed||e.status===TradeStatus.Failed}function Oa(e){return e.status===TradeStatus.Failed}async function Tq(e,r,t){let{timeoutMs:o=Of}=l(t,Lf),n=[...new Set(r.tradeIds)];if(n.length===0)return [...r.transactionsHashes];let s=new Map,a=Date.now()+o;for(;s.size<n.length;){let P=n.filter(I=>!s.has(I)),x=await Promise.all(P.map(I=>Ln(e,{id:I}).firstPage()));for(let I of x)for(let j of I.items)n.includes(j.id)&&Mf(j)&&s.set(j.id,j);if(s.size===n.length)break;if(Date.now()>=a){let I=n.filter(j=>!s.has(j));throw new i(`Timed out waiting for trades to settle: ${I.join(", ")}`)}await delay(Af);}let m=[...s.values()];if(m.every(Oa))throw new j(`Every fill of order ${r.orderId} failed execution: ${n.join(", ")}`);return [...new Set(m.filter(P=>!Oa(P)).map(P=>P.transactionHash))].map(P=>TxHashSchema.parse(P))}async function Fa(e,r){let t=r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,{allowances:o}=await qt(e,r.side===OrderSide.BUY?{assetType:t}:{assetType:t,assetId:r.assetId});return Bf(o,r.spenderAddress)}function Bf(e,r){return Object.entries(e).find(([o])=>isSameEvmAddress(o,r))?.[1]??0n}var Wq=o(k,l$1,h$1,g,n,c,b,a);function Uf(e,r){return So(e,r).then(W(e.signer))}var jq=o(k,l$1,h$1,g,n,i,j,c,b,a);function Hq(e,r){return Uf(e,r).then(t=>Ua(e,t,ze(r)))}var Nq=o(k,h$1,g,n,c,b,a);function Df(e,r){return ho(e,r).then(W(e.signer))}var Gq=o(k,h$1,g,n,i,j,c,b,a);function Kq(e,r){return Df(e,r).then(t=>Ua(e,t,ze(r)))}async function Ua(e,r,t){let o=tt(e);try{return await o(r)}catch(n){if(!_f(n))throw n;let s=await zf(e,r,t,o);if(s===void 0)throw n;return s}}async function zf(e,r,t,o){return await Wf(e,r,t)?o(r):void 0}function _f(e){return e instanceof g&&e.status===400&&e.message.includes("allowance is not enough")}async function Wf(e,r,t){let{assetId:o}=t,n=await We(e,o),s=we(e,t,n.negRisk),a=BigInt(r.makerAmount);return await Fa(e,{assetId:o,spenderAddress:s,side:r.side})>=a?false:(await(r.side===OrderSide.BUY?await ms(e,{amount:"max",spenderAddress:s,tokenAddress:e.environment.contracts.collateralToken}):await fs(e,{operatorAddress:s,tokenAddress:t.exchangeVersion==="3"?e.environment.contracts.positionManager:e.environment.contracts.conditionalTokens})).wait(),await Fn(e,{assetType:r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,tokenId:r.side===OrderSide.SELL?o:void 0}),true)}function Da(e){let r=TypedData.getSignPayload(Co(e));return expectEvmSignature(Signature.toHex(Secp256k1.sign({payload:r,privateKey:e.privateKey})))}function Co(e){return {domain:{chainId:e.chainId,name:"Polymarket",version:"1"},message:{data:Hash.keccak256(encode(za(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 za(e){return Array.isArray(e)?e.filter(r=>r!==void 0).map(za):e}function Wa(e,r){let t=_a(e.get("Poly-RateLimit-Remaining"),/^-?\d+$/),o=_a(e.get("Poly-RateLimit-Reset"),/^\d+$/),n=$f(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 _a(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 $f(e){if(!(e===null||e.trim()===""))return e}var ct=class{#e;#r;#t;#o;constructor({root:r,headers:t,resolveHeaders:o,onRateLimitUpdate:n}){this.#e=Rn.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),a=this.#c(this.#r,n.headers,s);return n.body!==void 0&&!a.has("content-type")&&a.set("content-type","application/json"),this.#e(this.#s(t),{body:n.body,headers:a,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=Wa(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:a,message:m,retryAfter:P}=await this.#m(o);throw new g(m,{code:a,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:a}=await r.clone().json().catch(()=>({}));if(n)return {message:`${String(n)} (${r.url})`,...typeof s=="string"&&s!==""?{code:s}:{},...typeof a=="number"&&Number.isFinite(a)&&a>=0?{retryAfter:a}:{}}}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 Zf=1e4,Jf=3e4,Xf=5e3,ey=10*6e4,ry=3e4,ty=25e3,oy=65e3,ja=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},Zf);}handleMessage(r){return r!=="PONG"?false:(this.#e=Date.now(),true)}isStale(r){return r-this.#e>Jf}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},Ha=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},Xf);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>ey}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},Na=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>ry}},dt=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"}}));},ty);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>oy}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}};var ay=5e3,iy=250,py=3e4,ut=class{#e;#r=0;schedule(r){if(this.#e!==void 0||!r.shouldReconnect())return;let t=dy(this.#r,{baseMs:iy,maxMs:py});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);}}},lt=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=cy(r.url,r.headers),a=()=>{s.removeEventListener("error",m),this.#a(s),this.#p(),r.onOpen(t),o(s);},m=P=>{s.removeEventListener("open",a),n(new c(`WebSocket connection failed: ${r.url}`,{cause:P}));};s.addEventListener("open",a,{once:true}),s.addEventListener("error",m,{once:true}),s.addEventListener("message",P=>{if(this.#r!==s)return;let x=String(P.data);if(this.#e?.handleMessage(x))return;let I;try{I=JSON.parse(x);}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();},ay));}#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 cy(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 dy(e,r){let t=Math.min(r.baseMs*2**e,r.maxMs);return Math.random()*t}var mt=1440*60*1e3,Ya=90*mt,ie=z$1.number().int().nonnegative(),ko=z$1.object({start:ie.optional(),end:ie.optional()}),Qa=z$1.object({interval:PerpsPnlIntervalSchema,start:ie,end:ie.optional()}),Ay=z$1.enum(["perpsFundingPayments","perpsDeposits","perpsWithdrawals"]),Oy=z$1.enum(["perpsEquityHistory","perpsPnlHistory"]),qo=z$1.object({kind:Ay,startTimestamp:ie,endTimestamp:ie,instrumentId:PerpsInstrumentIdSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional(),seenKeys:z$1.array(z$1.string())}),Za=z$1.object({kind:Oy,startTimestamp:ie,endTimestamp:ie,interval:PerpsPnlIntervalSchema});async function Ja(e){return await unwrap(e.get("/v1/account/balances").andThen(y(FetchPerpsBalancesResponseSchema)))}async function Xa(e){return await unwrap(e.get("/v1/account/portfolio").andThen(y(FetchPerpsPortfolioResponseSchema)))}async function ei(e){return await unwrap(e.get("/v1/account/stats").andThen(y(FetchPerpsAccountStatsResponseSchema)))}async function ri(e){return await unwrap(e.get("/v1/account/auto-cancel").andThen(y(FetchPerpsAutoCancelStatusResponseSchema)))}var wy=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function ti(e,r){let t=l(r,wy);return await unwrap(e.get("/v1/account/config",{params:le(t)}).andThen(y(FetchPerpsAccountConfigResponseSchema)))}var Ly=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function oi(e,r){let t=l(r,Ly);return await unwrap(e.get("/v1/account/open-orders",{params:le(t)}).andThen(y(FetchPerpsOpenOrdersResponseSchema)))}var My=z$1.object({orderId:PerpsOrderIdSchema.optional(),clientOrderId:PerpsClientOrderIdSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional(),start:ie.optional(),end:ie.optional()}).default({}),Fy=My.transform(({end:e,start:r,...t})=>({...t,endTimestamp:e,startTimestamp:r}));async function ni(e,r){let t=l(r,Fy);return await unwrap(e.get("/v1/account/orders",{params:le(t)}).andThen(y(FetchPerpsOrdersResponseSchema)))}var By=z$1.object({start:ie.optional(),end:ie.optional(),sort:PerpsSortDirectionSchema.optional(),cursor:PaginationCursorSchema.optional()});function si(e,r={}){let t=l(r,By);return C(o=>e.get("/v1/account/fills",{params:le({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 Uy=ko.extend({cursor:PaginationCursorSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional()}),Dy=z$1.object({cursor:PaginationCursorSchema}),zy=z$1.union([Uy.transform(({cursor:e,...r})=>({cursor:e,params:vo(r,mt)})),Dy.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function ai(e,r={}){let{cursor:t,params:o}=l(r,zy);return C(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps funding payment params."),s={kind:"perpsFundingPayments",seenKeys:[],...o}):s=or(n,qo);let{kind:a,seenKeys:m,...P}=s,x=new Set(s.seenKeys);return e.get("/v1/account/funding",{params:le(P)}).andThen(y(ListPerpsFundingPaymentsResponseSchema)).map(I=>{let j=I.data.filter(B=>!x.has(`${B.instrumentId}:${B.timestamp}:${B.funding}`));return Ao({getKey:B=>`${B.instrumentId}:${B.timestamp}:${B.funding}`,getTimestamp:B=>B.timestamp,items:j,responseData:I.data,responseMore:I.more,state:s})})},t)}var _y=ko.extend({cursor:PaginationCursorSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),hash:TxHashSchema.optional()}),Wy=z$1.object({cursor:PaginationCursorSchema}),jy=z$1.union([_y.transform(({cursor:e,...r})=>({cursor:e,params:vo(r,Ya)})),Wy.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function ii(e,r={}){let{cursor:t,params:o}=l(r,jy);return C(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps deposit params."),s={kind:"perpsDeposits",seenKeys:[],...o}):s=or(n,qo);let{kind:a,seenKeys:m,...P}=s,x=new Set(s.seenKeys);return e.get("/v1/account/deposits",{params:le(P)}).andThen(y(ListPerpsDepositsResponseSchema)).map(I=>{let j=I.data.filter(B=>!x.has(B.hash));return Ao({getKey:B=>B.hash,getTimestamp:aP,items:j,responseData:I.data,responseMore:I.more,state:s})})},t)}var Hy=ko.extend({cursor:PaginationCursorSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional()}),Ny=z$1.object({cursor:PaginationCursorSchema}),Gy=z$1.union([Hy.transform(({cursor:e,...r})=>({cursor:e,params:vo(r,Ya)})),Ny.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function pi(e,r={}){let{cursor:t,params:o}=l(r,Gy);return C(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps withdrawal params."),s={kind:"perpsWithdrawals",seenKeys:[],...o}):s=or(n,qo);let{kind:a,seenKeys:m,...P}=s,x=new Set(s.seenKeys);return e.get("/v1/account/withdrawals",{params:le(P)}).andThen(y(ListPerpsWithdrawalsResponseSchema)).map(I=>{let j=I.data.filter(B=>!x.has(String(B.withdrawalId)));return Ao({getKey:B=>String(B.withdrawalId),getTimestamp:iP,items:j,responseData:I.data,responseMore:I.more,state:s})})},t)}var Ky=Qa.extend({cursor:PaginationCursorSchema.optional()}),Vy=z$1.object({cursor:PaginationCursorSchema}),$y=z$1.union([Ky.transform(({cursor:e,...r})=>({cursor:e,params:fi(r)})),Vy.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function ci(e,r){let{cursor:t,params:o}=l(r,$y);return C(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps equity history params."),s={kind:"perpsEquityHistory",...o}):s=or(n,Za);let{kind:a,...m}=s;return e.get("/v1/account/equity",{params:le(m)}).andThen(y(ListPerpsEquityHistoryResponseSchema)).map(P=>{let x=P.data.at(-1),I=P.more&&x!==void 0&&x.timestamp<s.endTimestamp;return {items:P.data,hasMore:I,nextCursor:I?ft({...s,startTimestamp:x.timestamp+yi(s.interval)}):void 0}})},t)}var Yy=Qa.extend({cursor:PaginationCursorSchema.optional()}),Qy=z$1.object({cursor:PaginationCursorSchema}),Zy=z$1.union([Yy.transform(({cursor:e,...r})=>({cursor:e,params:fi(r)})),Qy.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function di(e,r){let{cursor:t,params:o}=l(r,Zy);return C(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps PnL history params."),s={kind:"perpsPnlHistory",...o}):s=or(n,Za);let{kind:a,...m}=s;return e.get("/v1/account/pnl",{params:le(m)}).andThen(y(ListPerpsPnlHistoryResponseSchema)).map(P=>{let x=P.data.at(-1),I=P.more&&x!==void 0&&x.timestamp<s.endTimestamp;return {items:P.data,hasMore:I,nextCursor:I?ft({...s,startTimestamp:x.timestamp+yi(s.interval)}):void 0}})},t)}var Jy=z$1.object({kind:z$1.literal("perpsNotifications"),cursor:z$1.string().min(1),sinceSeq:z$1.number().int().nonnegative().optional(),limit:z$1.number().int().positive().optional()}),Xy=z$1.object({sinceSeq:z$1.number().int().nonnegative().optional(),limit:z$1.number().int().positive().optional(),cursor:PaginationCursorSchema.optional()}),eP=z$1.object({cursor:PaginationCursorSchema}),rP=z$1.union([Xy.transform(({cursor:e,...r})=>({cursor:e,params:r})),eP.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function ui(e,r={}){let{cursor:t,params:o}=l(r,rP);return C(n=>{let s;n===void 0?invariant(o!==void 0,"Expected initial Perps notifications params."):s=or(n,Jy);let a=s===void 0?o?.sinceSeq:s.sinceSeq,m=s===void 0?o?.limit:s.limit;return e.get("/v1/account/notifications",{params:le({cursor:s?.cursor,limit:m,sinceSeq:a})}).andThen(y(ListPerpsNotificationsResponseSchema)).map(P=>{let x=P.has_more&&P.next_cursor!==null;return {items:P.items,hasMore:x,nextCursor:x&&P.next_cursor!==null?ft({kind:"perpsNotifications",cursor:P.next_cursor,limit:m,sinceSeq:a}):void 0}})},t)}async function li(e){return (await unwrap(e.get("/v1/account/notifications",{params:le({limit:1})}).andThen(y(FetchPerpsUnreadNotificationsCountResponseSchema)))).unread}var tP=z$1.object({ids:z$1.array(z$1.string().min(1)).min(1)}),oP=z$1.object({upTo:z$1.object({id:z$1.string().min(1),timestamp:z$1.number().int().nonnegative()})}),nP=z$1.union([tP.transform(({ids:e})=>({ids:e})),oP.transform(({upTo:e})=>({before:sP(e)}))]);async function mi(e,r){let t=l(r,nP),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 sP(e){return btoa(JSON.stringify({ts:e.timestamp,id:e.id})).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function vo(e,r){let t=Date.now(),{end:o,start:n,...s}=e;return {...s,endTimestamp:o??t,startTimestamp:n??t-r}}function fi(e){return {endTimestamp:e.end??Date.now(),interval:e.interval,startTimestamp:e.start}}function or(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps account pagination cursor",{cause:t})}}function ft(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function le(e){return R(e,h())}function aP(e){return e.confirmedTimestamp??e.createdTimestamp}function iP(e){return e.confirmedTimestamp??e.createdTimestamp}function Ao(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,a=new Set(e.state.endTimestamp===s?e.state.seenKeys:[]);for(let m of e.items)e.getTimestamp(m)===s&&a.add(e.getKey(m));return {items:e.items,hasMore:n,nextCursor:ft({...e.state,endTimestamp:s,seenKeys:Array.from(a)})}}function yi(e){switch(e){case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return mt;case "1w":return 7*mt}invariant(false,`Unsupported Perps account history interval: ${String(e)}`);}var Lo=z$1.object({instrumentId:PerpsInstrumentIdSchema,side:OrderSideSchema,quantity:PerpsDecimalInputSchema,reduceOnly:z$1.boolean().default(false),clientOrderId:PerpsClientOrderIdSchema.optional()}),mP=Lo.extend({price:PerpsDecimalInputSchema,timeInForce:z$1.literal(PerpsTimeInForce.GTC),postOnly:z$1.boolean().default(false)}),fP=Lo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z$1.literal(PerpsTimeInForce.IOC),postOnly:z$1.never().optional()}),yP=Lo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z$1.literal(PerpsTimeInForce.FOK),postOnly:z$1.never().optional()}),Mo=z$1.discriminatedUnion("timeInForce",[mP,fP,yP]),yt=z$1.object({triggerPrice:PerpsDecimalInputSchema,limitPrice:PerpsDecimalInputSchema.optional()}),Pt=z$1.object({triggerPrice:PerpsDecimalInputSchema}),PP=z$1.union([z$1.object({takeProfit:yt,stopLoss:yt.optional()}),z$1.object({takeProfit:yt.optional(),stopLoss:yt})]),gP=z$1.object({orders:z$1.array(Mo).min(1),expiresAt:z$1.number().int().positive().optional()});async function Ti(e,r){let t=l(r,gP);return await e.executeCommand({op:["createOrders",t.orders.map(Fo)],expiresAt:t.expiresAt},z$1.array(PerpsPostOrderAckSchema))}var RP=z$1.intersection(Mo,z$1.intersection(PP,z$1.object({clientOrderId:PerpsClientOrderIdSchema.default(Fi),expiresAt:z$1.number().int().positive().optional()}))),EP=z$1.intersection(Mo,z$1.object({clientOrderId:PerpsClientOrderIdSchema.default(Fi),expiresAt:z$1.number().int().positive().optional(),takeProfit:z$1.never().optional(),stopLoss:z$1.never().optional()})),xi=z$1.array(PerpsPostOrderAckSchema).min(1).refine(e=>e.every(r=>r.status==="ok"),"Expected successful Perps order acknowledgements.");function SP(e){return e.takeProfit!==void 0||e.stopLoss!==void 0}async function Ci(e,r){if(SP(r))return await hP(e,r);let t=l(r,EP),[,o]=await e.executeCommandWithEvent({op:["createOrders",[Fo(t)]],expiresAt:t.expiresAt},xi,Bi(t.clientOrderId));return {order:o.payload}}async function hP(e,r){let t=l(r,RP),o=[Fo(t)],n=t.side===OrderSide.SELL;t.takeProfit!==void 0&&o.push(St({buy:n,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:toDecimalString(t.quantity),trigger:t.takeProfit})),t.stopLoss!==void 0&&o.push(St({buy:n,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:toDecimalString(t.quantity),trigger:t.stopLoss}));let[s,a]=await e.executeCommandWithEvent({op:["createOrders",o,PerpsTpSlScope.Order],expiresAt:t.expiresAt},xi,Bi(t.clientOrderId)),m=1,P={};return t.takeProfit!==void 0&&(P.takeProfit=Et(expectPresent(s[m++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(P.stopLoss=Et(expectPresent(s[m],"Expected Perps stop-loss acknowledgement."))),{order:a.payload,tpSl:P}}var TP=z$1.union([z$1.object({takeProfit:Pt,stopLoss:Pt.optional()}),z$1.object({takeProfit:Pt.optional(),stopLoss:Pt})]),xP=z$1.intersection(TP,z$1.object({instrumentId:PerpsInstrumentIdSchema,expiresAt:z$1.number().int().positive().optional()}));async function Ii(e,r){let t=l(r,xP),o=LP(await e.fetchPortfolio(),t.instrumentId),n=[];t.takeProfit!==void 0&&n.push(St({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:"0",trigger:t.takeProfit})),t.stopLoss!==void 0&&n.push(St({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$1.array(PerpsPostOrderAckSchema));for(let P of s)if(P.status==="err")throw new g(P.error,{status:200});let a=0,m={};return t.takeProfit!==void 0&&(m.takeProfit=Et(expectPresent(s[a++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(m.stopLoss=Et(expectPresent(s[a],"Expected Perps stop-loss acknowledgement."))),{tpSl:m}}var CP=z$1.union([z$1.object({orderId:PerpsOrderIdSchema,clientOrderId:z$1.undefined().optional(),expiresAt:z$1.number().int().positive().optional()}),z$1.object({clientOrderId:PerpsClientOrderIdSchema,orderId:z$1.undefined().optional(),expiresAt:z$1.number().int().positive().optional()})]);async function bi(e,r){let t=l(r,CP),[o]=t.orderId!==void 0?await Rt(e,{orderIds:[t.orderId],expiresAt:t.expiresAt}):await Rt(e,{clientOrderIds:[t.clientOrderId],expiresAt:t.expiresAt});return expectPresent(o,"Expected Perps cancel order result.")}var IP=z$1.union([z$1.object({orderIds:z$1.array(PerpsOrderIdSchema).min(1),clientOrderIds:z$1.undefined().optional(),expiresAt:z$1.number().int().positive().optional()}),z$1.object({clientOrderIds:z$1.array(PerpsClientOrderIdSchema).min(1),orderIds:z$1.undefined().optional(),expiresAt:z$1.number().int().positive().optional()})]);async function Rt(e,r){let t=l(r,IP);return t.orderIds!==void 0?await e.executeCommand({op:["cancelOrders",t.orderIds],expiresAt:t.expiresAt},z$1.array(PerpsCancelOrderResultSchema)):await e.executeCommand({op:["cancelOrdersCOID",t.clientOrderIds],expiresAt:t.expiresAt},z$1.array(PerpsCancelOrderResultSchema))}var bP=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional(),expiresAt:z$1.number().int().positive().optional()}).default({});async function ki(e,r){let t=l(r,bP),o=["cancelAll",t.instrumentId===void 0?[]:[t.instrumentId]];await e.executeDeleteCommand({path:"/v1/trade/orders/all",op:o,responseSchema:PerpsCancelAllOrdersResponseSchema,expiresAt:t.expiresAt});}var kP=5e3,qP=z$1.object({cancelAt:z$1.number().int().positive(),expiresAt:z$1.number().int().positive().optional()}).superRefine((e,r)=>{let t=Date.now()+kP;e.cancelAt<t&&r.addIssue({code:"custom",message:"cancelAt must be at least 5 seconds in the future.",path:["cancelAt"]});}),qi=o(m,h$1,g,n,c,b,a),vP="auto_cancel_daily_limit_reached";async function vi(e,r,t){let o=l(t,qP),n=["autoCancel",[o.cancelAt]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:qr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)).mapErr(a=>a instanceof g&&a.message.startsWith(`${vP} (`)?new m("Auto-cancel daily trigger limit reached.",{cause:a}):a));}var AP=z$1.object({expiresAt:z$1.number().int().positive().optional()}).default({});async function Ai(e,r,t){let o=l(t,AP),n=["autoCancel",[0]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:qr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)));}var OP=z$1.object({instrumentId:PerpsInstrumentIdSchema,leverage:z$1.number().int().positive(),crossMargin:z$1.boolean()}),Oi=o(g,n,c,a);async function wi(e,r){let t=l(r,OP);return await e.executeCommand({op:["updateLeverage",[t.instrumentId,t.leverage,t.crossMargin]]},PerpsUpdateLeverageResultSchema)}var wP=z$1.object({instrumentId:PerpsInstrumentIdSchema,amount:PerpsDecimalInputSchema}),Li=o(g,n,c,a);async function Mi(e,r){let t=l(r,wP),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 Fi(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));return PerpsClientOrderIdSchema.parse(Array.from(e,r=>r.toString(16).padStart(2,"0")).join(""))}function Bi(e){return r=>r.type==="order"&&r.payload.clientOrderId===e}function Et(e){if(e.status==="err")throw new g(e.error,{status:200});return {orderId:e.orderId}}function LP(e,r){let t=e.positions.find(n=>n.instrumentId===r),o=t===void 0?0:MP(t.size);if(o===0)throw new a(`No open Perps position for instrument ${r}.`);return o<0}function MP(e){let r=e.trim(),t=r.replace(/^[+-]/,"").replace(".","");return /^0*$/.test(t)?0:r.startsWith("-")?-1:1}function Fo(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 St(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 qr(e){let[r,t,o]=e;switch(r){case "createOrders":return UP({args:t.map(FP),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,a]=t;return {type:r,args:{cross:a,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 FP(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=BP(e[8])),r}function BP(e){let r={tpsl:e[2],trp:e[1]};return e[0]!==void 0&&(r.market=e[0]),r}function UP(e,r){return r!==void 0&&(e.grp=r),e}var HP=3e4,zi=3e4,NP=2e3,GP=["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications","tpsl"],KP=new Set(["notifications"]),VP=z$1.object({id:z$1.number().int().positive().optional(),data:z$1.unknown().optional()}).passthrough(),_i=z$1.union([PerpsCommandAckSchema,z$1.array(PerpsCommandAckSchema)]).transform(e=>Array.isArray(e)?e.find(r=>r.status==="err")??e[0]:e),Wi=class{credentials;#e;#r;#t;#o;#s;#n=new lt({heartbeat:new dt});#a=pushable({objectMode:true});#i=new Map;#p=new Set;#c=new ut;#u=new Map;#l=1;#d;constructor(r){this.#e=new ct({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 Ja(this.#e)}async fetchPortfolio(){return await Xa(this.#e)}async fetchStats(){return await ei(this.#e)}async fetchAccountConfig(r){return await ti(this.#e,r)}async fetchAutoCancelStatus(){return await ri(this.#e)}async fetchOpenOrders(r){return await oi(this.#e,r)}async fetchOrders(r){return await ni(this.#e,r)}listFills(r={}){return si(this.#e,r)}listFundingPayments(r={}){return ai(this.#e,r)}listDeposits(r={}){return ii(this.#e,r)}listWithdrawals(r={}){return pi(this.#e,r)}listEquityHistory(r){return ci(this.#e,r)}listPnlHistory(r){return di(this.#e,r)}listNotifications(r={}){return ui(this.#e,r)}async fetchUnreadNotificationsCount(){return await li(this.#e)}async markNotificationsRead(r){await mi(this.#e,r);}async placeOrder(r){return await Ci(this,r)}async postOrders(r){return await Ti(this,r)}async placePositionTpSl(r){return await Ii(this,r)}async cancelOrder(r){return await bi(this,r)}async cancelOrders(r){return await Rt(this,r)}async cancelAllOrders(r){await ki(this,r);}async armAutoCancel(r){await vi(this.#e,(t,o)=>this.#f(t,o),r);}async disarmAutoCancel(r){await Ai(this.#e,(t,o)=>this.#f(t,o),r);}async updateLeverage(r){return await wi(this,r)}async updateMargin(r){await Mi(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"},_i,HP,"Perps session authentication timed out.");}async#h(){await this.#P({id:this.#l++,req:"sub",chs:GP},_i,zi,"Perps session subscription timed out.");}#T(){return {"POLYMARKET-PROXY":this.credentials.proxy,"POLYMARKET-SECRET":this.credentials.secret}}async executeCommand(r,t){let o=qr(r.op),n=this.#f(r.op,r.expiresAt);return await this.#P({...n,id:this.#l++,op:o,req:"post"},t,zi,"Perps command response timed out.")}async executeCommandWithEvent(r,t,o){let n=this.#q(o),s=this.executeCommand(r,t);s.then(()=>this.#v(n,NP),()=>{});try{let[a,m]=await Promise.all([s,n.promise]);return [a,m]}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:qr(r.op)}}).andThen(y(r.responseSchema)))}#f(r,t){let o=QP(),n$1=Date.now(),s;try{s=Da({chainId:this.#r,op:r,privateKey:this.credentials.privateKey,salt:o,timestamp:n$1});}catch(m){throw n.fromError(m,"Could not sign the Perps session command")}let a={salt:o,sig:s,ts:n$1};return t!==void 0&&(a.exp=t),a}async#P(r,t,o,n){let s=$P(t);this.#i.set(r.id,s);let a=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(a),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.#k(o),this.#R(o);}#I(r){let t=VP.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=Bo(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 YP(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();}#k(r){if(KP.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((a,m)=>{t=a,o=m;}),predicate:r,reject:o,resolve:t};return this.#p.add(s),s}#v(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 $P(e){let r,t;return {promise:new Promise((n,s)=>{r=n,t=s;}),reject:t,resolve:r,schema:e}}function YP(e){return Array.isArray(e)?false:Bo(e)!==void 0}function Bo(e){if(Array.isArray(e)){for(let t of e){let o=Bo(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 QP(){let[e]=globalThis.crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var Ge=o(h$1,g,c,b,a),Ee=z$1.number().int().nonnegative(),Ni=1440*60*1e3,Pg=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional(),category:PerpsInstrumentCategorySchema.optional()}).default({}),sA=Ge;async function aA(e,r){let t=l(r,Pg);return unwrap(e.perps.get("/v1/info/instruments",{params:R(t,h())}).andThen(y(FetchPerpsInstrumentsResponseSchema)))}var gg=z$1.object({instrumentId:PerpsInstrumentIdSchema}),iA=Ge;async function pA(e,r){let t=l(r,gg),[o]=await Eg(e,t);if(o===void 0)throw new b(`Perps ticker ${t.instrumentId} was not returned by the API`);return o}var Rg=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({}),cA=Ge;async function Eg(e,r){let t=l(r,Rg),o=R(t,h()),[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)))]),a=new Map(s.map(m=>[m.instrumentId,m]));return n.map(m=>{let P=a.get(m.instrumentId);return {...m,openPrice:P?.openPrice,volume24h:P?.volume}})}var Sg=z$1.union([z$1.literal(10),z$1.literal(100),z$1.literal(500),z$1.literal(1e3)]),hg=z$1.object({instrumentId:PerpsInstrumentIdSchema,depth:Sg.default(100)}),dA=Ge;async function uA(e,r){let t=l(r,hg);return unwrap(e.perps.get("/v1/info/book",{params:R(t,h())}).andThen(y(PerpsBookSchema)))}var Tg=z$1.object({instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,start:Ee.optional(),end:Ee.optional(),cursor:PaginationCursorSchema.optional()}),xg=z$1.object({cursor:PaginationCursorSchema}),Cg=z$1.union([Tg.transform(({cursor:e,...r})=>({cursor:e,params:Mg(r)})),xg.transform(({cursor:e})=>({cursor:e,params:void 0}))]),lA=Ge;function mA(e,r){let{cursor:t,params:o}=l(r,Cg);return C(n=>{let s=n===void 0?Fg(o):Dg(n);return e.perps.get("/v1/info/klines",{params:R({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,interval:s.interval,startTimestamp:s.startTimestamp},h())}).andThen(y(FetchPerpsCandlesResponseSchema)).map(a=>{let m=a.data.at(-1),P=a.more&&m!==void 0;return {items:a.data,hasMore:P,nextCursor:P?_o({...s,startTimestamp:m.timestamp+Wg(s.interval)}):void 0}})},t)}var Gi=z$1.object({instrumentId:PerpsInstrumentIdSchema,start:Ee.optional(),end:Ee.optional()}),Ig=Gi.extend({cursor:PaginationCursorSchema.optional()}),bg=z$1.object({cursor:PaginationCursorSchema}),kg=z$1.union([Ig.transform(({cursor:e,...r})=>({cursor:e,params:Ki(r)})),bg.transform(({cursor:e})=>({cursor:e,params:void 0}))]),qg=Gi.extend({cursor:PaginationCursorSchema.optional()}),vg=z$1.object({cursor:PaginationCursorSchema}),fA=Ge;function yA(e,r){let{cursor:t,params:o}=l(r,kg);return C(n=>{let s=n===void 0?Bg(o):zg(n);return e.perps.get("/v1/info/funding",{params:R({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},h())}).andThen(y(FetchPerpsFundingHistoryResponseSchema)).map(a=>{let m=a.data.at(-1),P=a.more&&m!==void 0&&m.timestamp>s.startTimestamp;return {items:a.data,hasMore:P,nextCursor:P?_o({...s,endTimestamp:m.timestamp-1}):void 0}})},t)}var Ag=z$1.union([qg.transform(({cursor:e,...r})=>({cursor:e,params:Ki(r)})),vg.transform(({cursor:e})=>({cursor:e,params:void 0}))]),PA=Ge;function gA(e,r){let{cursor:t,params:o}=l(r,Ag);return C(n=>{let s=n===void 0?Ug(o):_g(n),a=new Set(s.seenTradeIds);return e.perps.get("/v1/info/trades",{params:R({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},h())}).andThen(y(FetchPerpsTradesResponseSchema)).map(m=>{let P=m.data.filter(Kp=>!a.has(Kp.tradeId)),x=m.data.at(-1),I=P.at(-1),j=I?.timestamp??x?.timestamp,B=m.more&&j!==void 0&&j>s.startTimestamp;return {items:P,hasMore:B,nextCursor:B?_o({...s,endTimestamp:I===void 0?j-1:j,seenTradeIds:I===void 0?[]:jg(s,P,I)}):void 0}})},t)}var RA=o(h$1,g,c,b);async function EA(e){return (await unwrap(e.perps.get("/v1/info/fees").andThen(y(FetchPerpsFeesResponseSchema)))).feeSchedule}var Og=z$1.object({kind:z$1.literal("perpsCandles"),instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,startTimestamp:Ee,endTimestamp:Ee}),wg=z$1.object({kind:z$1.literal("perpsFundingHistory"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:Ee,endTimestamp:Ee}),Lg=z$1.object({kind:z$1.literal("perpsTrades"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:Ee,endTimestamp:Ee,seenTradeIds:z$1.array(PerpsTradeIdSchema)});function Mg(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,interval:e.interval,startTimestamp:e.start??r-Ni}}function Ki(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,startTimestamp:e.start??r-Ni}}function Fg(e){return invariant(e!==void 0,"Expected initial Perps candles params."),{kind:"perpsCandles",...e}}function Bg(e){return invariant(e!==void 0,"Expected initial Perps funding params."),{kind:"perpsFundingHistory",...e}}function Ug(e){return invariant(e!==void 0,"Expected initial Perps trades params."),{kind:"perpsTrades",seenTradeIds:[],...e}}function Dg(e){return zo(e,Og)}function zg(e){return zo(e,wg)}function _g(e){return zo(e,Lg)}function zo(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps pagination cursor",{cause:t})}}function _o(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function Wg(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 jg(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 Hg=z$1.custom(e=>isPrivateKey(e),"Expected a hex-encoded 32-byte private key."),Ng=z$1.object({proxy:z$1.string().transform(e=>expectEvmAddress(e)),privateKey:Hg,secret:z$1.string().min(1),expiresAt:z$1.number().int().positive()}),Gg=10080*60*1e3,Kg=z$1.strictObject({expiresIn:z$1.number().int().positive().default(Gg),label:z$1.string().min(1).optional()}),Vg=z$1.strictObject({credentials:Ng}),$g=z$1.union([Kg,Vg]),Yg=z$1.object({proxy:z$1.string()}),Qg=Yg.transform(e=>({proxy:expectEvmAddress(e.proxy)})),Vi=z$1.bigint().positive().max(re),Zg=z$1.object({amount:Vi,metadata:Q.optional()}),Jg=z$1.object({amount:Vi}),SA=o(h$1,g,n,c,b,a),hA=o(h$1,g,n,c,b,a),TA=o(a),xA=o(k,h$1,g,n,c,b,a),CA=o(h$1,g,n,c,b,a);async function IA(e,r={}){let t=l(r,$g),o="credentials"in t?await rR(e,t.credentials):await eR(e,t);return e.webSockets.perpsSession.connect(o)}async function bA(e,r){let t=l(r,Qg),o={type:"deleteProxy",args:{proxy:t.proxy}},n=["deleteProxy",[t.proxy]],s=Wo(),a=Date.now(),m=await oR(e,{salt:s,signedOp:n,timestamp:a}),P=await unwrap(e.perps.del("/v1/account/proxy",{json:{op:o,salt:s,sig:m,ts:a}}).andThen(y(PerpsDeleteProxyResponseSchema)));if(P.status==="err")throw new g(P.error??"Perps credentials revocation was rejected.",{status:200})}async function Xg(e,r){let t=l(r,Zg),{contracts:o}=e.environment,n=Xn(o.perpsDepositContract,o.collateralToken,t.amount,e.account.signer);return async function*(){return e.account.walletType===WalletType.EOA?V(yield dR($(e.environment.chainId,n))):yield*await X(e,{calls:[n],metadata:t.metadata??`Deposit ${t.amount} of ${o.collateralToken} to Perps`})}.call(null)}function kA(e,r){return Xg(e,r).then(W(e.signer))}async function qA(e,r){let t=l(r,Jg),o=Math.floor(Date.now()/1e3),n=Wo(),s={type:"withdraw",args:{account:e.account.signer,token:e.environment.contracts.collateralToken,amount:t.amount.toString(),to:e.account.wallet}},a=await nR(e,{amount:t.amount,salt:n,timestamp:o}),m=await unwrap(e.perps.post("/v1/account/withdraw",{json:{op:s,salt:n,sig:a,ts:o}}).andThen(y(PerpsWithdrawResponseSchema)));if(m.status==="err")throw new g(m.error??"Perps withdrawal was rejected.",{status:200});if(m.withdrawalId===void 0)throw new b("Perps withdrawal response did not include a withdrawal ID.");return m.withdrawalId}async function eR(e,r){let t=iR(),o=Yi(t),n=e.account.signer,s=Date.now()+r.expiresIn,a=Date.now(),m=Wo(),P={args:{expiry:s,owner:n,proxy:o},type:"createProxy"},x=await tR(e,{expiresAt:s,proxy:o,salt:m,timestamp:a}),I={op:P,salt:m,sig:x,ts:a};r.label!==void 0&&(I.label=r.label);let j=await unwrap(e.perps.post("/v1/account/proxy",{json:I}).andThen(y(PerpsCreateProxyResponseSchema))),B={expiresAt:s,privateKey:t,proxy:o,secret:j.secret};return $i(e,B)}async function rR(e,r){return pR(r),$i(e,r)}async function $i(e,r){let t=await unwrap(e.perps.get("/v1/account/credentials",{headers:cR(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 tR(e,r){try{return await e.signer.signTypedData(aR({chainId:e.environment.chainId,...r}))}catch(t){throw n.fromError(t,"Could not sign the Perps proxy credentials request")}}async function oR(e,r){try{return await e.signer.signTypedData(Co({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 nR(e,r){try{return await e.signer.signTypedData(sR({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 sR(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 aR(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 iR(){return expectPrivateKey(Secp256k1.randomPrivateKey(),"Generated invalid Perps proxy key.")}function Yi(e){return expectEvmAddress(Address.fromPublicKey(Secp256k1.getPublicKey({privateKey:e})))}function pR(e){let r=Yi(e.privateKey);if(!isSameEvmAddress(r,e.proxy))throw new a("Perps credentials private key does not match the proxy address.")}function cR(e){return {"POLYMARKET-PROXY":e.proxy,"POLYMARKET-SECRET":e.secret}}function dR(e){return {kind:"sendPerpsDepositTransaction",request:e}}function Wo(){let[e]=crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var Zi=(s=>(s.CurrentValueDesc="current_value_desc",s.FirstEntryDesc="first_entry_desc",s.EntryCostDesc="entry_cost_desc",s.ResolvedAtDesc="resolved_at_desc",s.UpdatedAsc="updated_asc",s))(Zi||{}),PR=z$1.enum(["CURRENT","INITIAL","TOKENS","CASHPNL","PERCENTPNL","TITLE","RESOLVING","PRICE","AVGPRICE"]),Ji=z$1.enum(["ASC","DESC"]),gR=z$1.object({cursor:PaginationCursorSchema.optional(),user:z$1.string(),market:z$1.array(z$1.string()).optional(),eventId:z$1.array(z$1.number().int()).optional(),sizeThreshold:z$1.number().optional(),redeemable:z$1.boolean().optional(),mergeable:z$1.boolean().optional(),pageSize:A.max(500).default(20),sortBy:PR.optional(),sortDirection:Ji.optional(),title:z$1.string().max(100).optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),_A=o(h$1,g,c,b,a);function WA(e,r){let{cursor:t,pageSize:o,...n}=l(r,gR);return C(s=>{let a=_(s,o);return e.data.get("/positions",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListPositionsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var RR=z$1.enum(["REALIZEDPNL","TITLE","PRICE","AVGPRICE","TIMESTAMP"]),ER=z$1.object({cursor:PaginationCursorSchema.optional(),user:z$1.string(),market:z$1.array(z$1.string()).optional(),title:z$1.string().max(100).optional(),eventId:z$1.array(z$1.number().int()).optional(),pageSize:A.max(50).default(20),sortBy:RR.optional(),sortDirection:Ji.optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),jA=o(h$1,g,c,b,a);function HA(e,r){let{cursor:t,pageSize:o,...n}=l(r,ER);return C(s=>{let a=_(s,o);return e.data.get("/closed-positions",{params:K({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListClosedPositionsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var SR=z$1.enum(Zi),hR=z$1.union([ComboConditionIdSchema,z$1.array(ComboConditionIdSchema)]),TR=z$1.union([ComboPositionStatusSchema,z$1.tuple([ComboPositionStatusSchema],ComboPositionStatusSchema)]),xR=z$1.object({cursor:PaginationCursorSchema.optional(),user:z$1.string(),pageSize:A.default(20),status:TR.optional(),sort:SR.optional(),conditionId:hR.optional(),updatedAfter:z$1.number().int().min(0).optional(),updatedBefore:z$1.number().int().min(0).optional()}),NA=o(h$1,g,c,b,a);function GA(e,r){let{cursor:t,pageSize:o,conditionId:n,status:s,...a}=l(r,xR);return C(m=>{let P=R({...a,limit:o,cursor:m},h({updatedAfter:"updatedAfter",updatedBefore:"updatedBefore"}));return CR(P,n),IR(P,s),e.data.get("/v1/positions/combos",{params:P}).andThen(y(ListComboPositionsResponseSchema)).map(x=>{let I=x.pagination.nextCursor??void 0;return {items:x.combos,hasMore:I!==void 0,nextCursor:I}})},t)}function CR(e,r){r!==void 0&&e.append("market_id",Array.isArray(r)?r.join(","):r);}function IR(e,r){r!==void 0&&e.append("status",typeof r=="string"?r:r.join(","));}var bR=z$1.object({user:z$1.string(),market:z$1.array(z$1.string()).optional()}),KA=o(h$1,g,c,b,a);async function VA(e,r){let t=l(r,bR);return unwrap(e.data.get("/value",{params:K(t)}).andThen(y(FetchPortfolioValueResponseSchema)))}var kR=z$1.object({user:z$1.string()}),$A=o(h$1,g,c,b,a);async function YA(e,r){let t=l(r,kR);return unwrap(e.data.get("/traded",{params:K(t)}).andThen(y(TradedSchema)))}var qR=z$1.object({user:z$1.string()}),QA=o(h$1,g,c,b,a);async function ZA(e,r){let t=l(r,qR);return unwrap(e.data.get("/v1/accounting/snapshot",{params:K(t)}).andThen(gn))}var tp=32,wR=1n,LR=2n,op=3n,rp=50,MR=(1n<<256n)-1n;function Go(e){let r=AbiParameters.encode([{name:"legs",type:"uint256[]"}],[e]),t=Hash.keccak256(AbiParameters.encode([{name:"moduleId",type:"uint256"},{name:"data",type:"bytes"}],[op,r])),o=toComboConditionId(`0x03${t.slice(34)}0000000000000000000000000000`);return {conditionId:o,positionIds:[toPositionId(BigInt(`${o}00`).toString()),toPositionId(BigInt(`${o}01`).toString())]}}function Ko(e){if(e.length===0||e.length>rp)throw new a(`Combo legs must include 1 to ${rp} position IDs`);let r=e.map(t=>{let o=sp(t),n=o.toString(16).padStart(tp*2,"0"),s=Number.parseInt(n.slice(0,2),16),a$1=Number.parseInt(n.slice(-2),16);if(s!==1&&s!==2||a$1>1)throw new a("Combo legs must be binary or neg-risk YES/NO position IDs");return {value: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 np(e){let t=sp(e).toString(16).padStart(tp*2,"0"),o=BigInt(`0x${t.slice(0,2)}`),n=Number.parseInt(t.slice(-2),16);if(o!==wR&&o!==LR&&o!==op)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 sp(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>MR)throw new a("Position ID must be a uint256 value");return t}var ap=o(h$1,g,c,b,a),ip=z$1.object({amount:z$1.bigint().min(0n),conditionId:ConditionIdSchema,metadata:Q.optional()}),RO=ap;async function pp(e,r){let t=l(r,ip),o=await Jo(e,{conditionId:t.conditionId}),n=o.protocol==="ctf"?es(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,t.amount):wt(e.environment.contracts.protocolV2Router,o.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?V(yield Vo($(e.environment.chainId,n))):yield*await X(e,{calls:[n],metadata:t.metadata??`Split ${t.amount} positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var cp=z$1.object({amount:z$1.bigint().positive(),legs:z$1.array(PositionIdSchema).min(1).max(50),metadata:Q.optional()}),EO=ap;async function dp(e,r){let t=l(r,cp),o=Ko(t.legs),n=Mt(e.environment.contracts.combinatorialModule,o),s=Go(o),a=wt(e.environment.contracts.protocolV2Router,s.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?(await V(yield Vo($(e.environment.chainId,n))).wait(),V(yield Vo($(e.environment.chainId,a)))):yield*await X(e,{calls:[n,a],metadata:t.metadata??`Split ${t.amount} combo positions for condition ${s.conditionId}`})}.call(null)}var BR=z$1.union([ip.extend({legs:z$1.never().optional()}),cp.extend({conditionId:z$1.never().optional()})]);async function UR(e,r){let t=l(r,BR);return t.legs!==void 0?dp(e,t):pp(e,t)}var up=o(k,h$1,g,n,i,j,c,b,a),SO=up;function hO(e,r){return pp(e,r).then(W(e.signer))}var TO=up;function xO(e,r){return dp(e,r).then(W(e.signer))}function CO(e,r){return UR(e,r).then(W(e.signer))}var lp=o(h$1,g,c,b,a),mp=z$1.object({amount:z$1.union([z$1.bigint().positive(),z$1.literal("max")]),conditionId:ConditionIdSchema,metadata:Q.optional()}),IO=lp;async function fp(e,r){let t=l(r,mp),o=await Jo(e,{conditionId:t.conditionId}),n=zr(await e.rpc.ethCall(Dr(o.positionErc1155Address,e.account.wallet,o.outcomeIds))),s=xp(o.conditionId,n,t.amount),a=o.protocol==="ctf"?rs(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,s):Lt(e.environment.contracts.protocolV2Router,o.conditionId,s);return async function*(){return e.account.walletType===WalletType.EOA?V(yield $o($(e.environment.chainId,a))):yield*await X(e,{calls:[a],metadata:t.metadata??`Merge ${s} positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var yp=z$1.object({amount:z$1.union([z$1.bigint().positive(),z$1.literal("max")]),legs:z$1.array(PositionIdSchema).min(1).max(50),metadata:Q.optional()}),bO=lp;async function Pp(e,r){let t=l(r,yp),o=Ko(t.legs),n=Mt(e.environment.contracts.combinatorialModule,o),s=Go(o),a=zr(await e.rpc.ethCall(Dr(e.environment.contracts.positionManager,e.account.wallet,s.positionIds))),m=xp(s.conditionId,a,t.amount),P=Lt(e.environment.contracts.protocolV2Router,s.conditionId,m);return async function*(){return e.account.walletType===WalletType.EOA?(await V(yield $o($(e.environment.chainId,n))).wait(),V(yield $o($(e.environment.chainId,P)))):yield*await X(e,{calls:[n,P],metadata:t.metadata??`Merge ${m} combo positions for condition ${s.conditionId}`})}.call(null)}var DR=z$1.union([mp.extend({legs:z$1.never().optional()}),yp.extend({conditionId:z$1.never().optional()})]);async function zR(e,r){let t=l(r,DR);return t.legs!==void 0?Pp(e,t):fp(e,t)}var gp=o(k,h$1,g,n,i,j,c,b,a),kO=gp;function qO(e,r){return fp(e,r).then(W(e.signer))}var vO=gp;function AO(e,r){return Pp(e,r).then(W(e.signer))}function OO(e,r){return zR(e,r).then(W(e.signer))}var Rp=o(h$1,g,c,b,a),Ep=z$1.object({conditionId:ConditionIdSchema,marketId:z$1.never().optional(),amount:z$1.never().optional(),positionId:z$1.never().optional(),metadata:Q.optional()}),Sp=z$1.object({conditionId:z$1.never().optional(),marketId:MarketIdSchema,amount:z$1.never().optional(),positionId:z$1.never().optional(),metadata:Q.optional()}),_R=z$1.union([Ep,Sp]),wO=Rp;async function WR(e,r){let t=l(r,_R),o=await Jo(e,t.conditionId!==void 0?{conditionId:t.conditionId,closed:true}:{marketId:t.marketId,closed:true}),n=await VR(e,o);return async function*(){return e.account.walletType===WalletType.EOA?yield*NR(e,n):yield*await X(e,{calls:n,metadata:t.metadata??`Redeem positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}var hp=z$1.object({positionId:PositionIdSchema,conditionId:z$1.never().optional(),marketId:z$1.never().optional(),metadata:Q.optional()});async function Tp(e,r){let t=l(r,hp),o=np(t.positionId),n=Qn(await e.rpc.ethCall(Yn(e.environment.contracts.positionManager,e.account.wallet,t.positionId)));if(n===0n)throw new a("Position has no balance to redeem");let s=_r(e.environment.contracts.protocolV2Router,o.conditionId,o.outcomeIndex,n);return async function*(){return e.account.walletType===WalletType.EOA?V(yield Yo($(e.environment.chainId,s))):yield*await X(e,{calls:[s],metadata:t.metadata??`Redeem position ${t.positionId}`})}.call(null)}var LO=Rp;function MO(e,r){return Tp(e,r)}var jR=z$1.union([Ep,Sp,hp]);async function HR(e,r){let t=l(r,jR);return t.positionId!==void 0?Tp(e,t):WR(e,t)}var FO=o(k,h$1,g,n,i,j,c,b,a);function BO(e,r){return HR(e,r).then(W(e.signer))}function Vo(e){return {kind:"sendSplitPositionTransaction",request:e}}function $o(e){return {kind:"sendMergePositionsTransaction",request:e}}function Yo(e){return {kind:"sendRedeemPositionsTransaction",request:e}}async function*NR(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 V(yield Yo($(e.environment.chainId,n))).wait(),n=s;return V(yield Yo($(e.environment.chainId,n)))}async function Jo(e,r){let t=r.conditionId!==void 0?`condition ${r.conditionId}`:`market ${r.marketId}`,o=await _s(e,r.conditionId!==void 0?{conditionIds:[r.conditionId],closed:r.closed,pageSize:1}:{ids:[GR(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=KR(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 GR(e){let r=Number(e);if(!Number.isInteger(r))throw new a(`Market ID must be an integer, received ${e}`);return r}function KR(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 VR(e,r){if(r.protocol==="ctf")return [ts(r.adapterAddress,e.environment.contracts.collateralToken,r.conditionId)];let t=zr(await e.rpc.ethCall(Dr(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(_r(e.environment.contracts.protocolV2Router,r.conditionId,0,o)),n>0n&&s.push(_r(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 xp(e,r,t){let o=$R(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 $R(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 XR=z$1.object({address:z$1.string()}),GO=o(h$1,g,c,b,a);async function KO(e,r){let t=l(r,XR);return unwrap(e.gamma.get("/public-profile",{params:R(t,h())}).andThen(y(PublicProfileSchema)).orElse(o=>o instanceof g&&o.status===404?ok(null):err(o)))}var rn=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;}},ow=o(e,rn,n,i,c,a),tn=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;}},nw=o(e,tn,i,c),on=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;}},sw=o(e,on,i,c),aw=o(e,c,a);async function iw(e){return wr(e),e.webSockets.rfqQuoter.connect()}var sn="/v1/builder/rfq/requests",sE=3e4,aE=3e4,iE=3e4,pE=500,cE=3e4,dE=1e3,uE="0x0000000000000000000000000000000000000000000000000000000000000000",Me=class extends PolymarketError{name="RfqRequestRejectedError";status;code;constructor(r,t){super(r,t),this.status=t.status,this.code=t.code;}};function an(e){return e instanceof g?new Me(e.message,{cause:e,code:Mp(e.code),status:e.status}):e}var lE=new Set(Object.values(RfqRejectionCode));function Mp(e){return e!==void 0&&lE.has(e)?e:RfqRejectionCode.RequestFailed}function Fp(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$1.array(z$1.string().regex(/^\d+$/,"Leg position IDs must be numeric strings.").transform(e=>toPositionId(BigInt(e).toString()))).min(2,"Combo requests require at least 2 legs.").max(50,"Combo requests allow at most 50 legs.").refine(e=>new Set(e).size===e.length,"Leg position IDs must not contain duplicates.").transform(e=>[...e].sort((r,t)=>{let o=BigInt(r),n=BigInt(t);return o<n?-1:o>n?1:0})),Tt=z$1.union([z$1.number(),z$1.string()]).transform((e,r)=>{let t=/^(\d+)(?:\.(\d*))?$/.exec(String(e));if(t===null)return r.addIssue({code:"custom",message:"Value must be a valid decimal."}),z$1.NEVER;let[,o="",n=""]=t;if(n.length>6)return r.addIssue({code:"custom",message:"Value must have at most 6 decimal places."}),z$1.NEVER;let s=mE(o,n);return s<=0n?(r.addIssue({code:"custom",message:"Value must be greater than 0."}),z$1.NEVER):s.toString()});function mE(e,r){return BigInt(e)*1000000n+BigInt(r.padEnd(6,"0"))}var fE=z$1.discriminatedUnion("direction",[z$1.object({amount:Tt,direction:z$1.literal(OrderSide.BUY),legPositionIds:qp,side:z$1.literal(RfqSide.Yes).optional()}),z$1.object({direction:z$1.literal(OrderSide.SELL),legPositionIds:qp,side:z$1.literal(RfqSide.Yes).optional(),size:Tt})]),pw=o(h$1,Me,c,b,a);async function cw(e,r){wr(e);let t=l(r,fE);Fp(e);let o=fr(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(sn,{json:n,timeout:sE}).andThen(y(BuilderRfqCreateResponseSchema)).mapErr(an));if("quote"in s){yE(s,n);let a=s.request.direction===RfqDirection.Buy?OrderSide.BUY:OrderSide.SELL,m={blendedPrice:s.quote.blendedPrice,builderCode:s.builderCode,expiresAt:s.expiresAt,makerAmount:s.quote.makerAmount,positionId:s.request.yesPositionId,quoteId:s.quote.quoteId,rfqId:s.rfqId,takerAmount:s.quote.takerAmount,totalRequired:s.quote.totalRequired};if(a===OrderSide.SELL){if(s.quote.netReceive===void 0)throw new b(`SELL quote for RFQ ${s.rfqId} omitted net sell proceeds.`);return {quote:{...m,direction:a,netReceive:s.quote.netReceive},rfqId:s.rfqId}}return {quote:{...m,direction:a},rfqId:s.rfqId}}return PE(s)}function yE(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 PE(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 Me(e.error?.message??"The combo quote request failed.",{code:Mp(e.error?.code),status:200,...e.error===void 0?{}:{cause:e.error}})}}var gE=OrderSideSchema,RE=z$1.object({blendedPrice:z$1.string(),builderCode:z$1.string().regex(/^0x[0-9a-fA-F]{64}$/,"builderCode must be a 32-byte hex string.").transform(toBuilderCode),direction:gE,expiresAt:z$1.number().int().nonnegative(),makerAmount:Tt.transform(toBaseUnits),netReceive:z$1.string().optional(),positionId:z$1.string().regex(/^\d+$/,"positionId must be a numeric string.").transform(toPositionId),quoteId:z$1.string().min(1).transform(toRfqQuoteId),rfqId:z$1.string().min(1).transform(toRfqId),takerAmount:Tt.transform(toBaseUnits),totalRequired:z$1.string()}),dw=o(k,h$1,Me,n,i,c,b,a);async function uw(e,r){wr(e);let t=l(r,RE);Fp(e);let o=Gs({chainId:e.environment.chainId,exchange:e.environment.contracts.exchangeV3}),n=hE(e,t),s=await xE(e,o,n),a={quote_id:t.quoteId,signed_order:s};function m(){return e.builderGateway.post(`${sn}/${encodeURIComponent(t.rfqId)}/accept`,{json:a,timeout:aE}).andThen(y(BuilderRfqStatusResponseSchema))}let P=await m();if(P.isErr()&&(P.error instanceof c||P.error instanceof b)&&(P=await m()),P.isErr()){let B=EE(t.rfqId,P.error);if(B!==void 0)return B;throw an(P.error)}let x=P.value,I=P.value.takerOrderHash,j=Date.now()+iE;for(;x.status===RfqStatus.AwaitingMakerConfirmation;){if(Date.now()>=j)throw new i(`Timed out waiting for the acceptance outcome of RFQ ${t.rfqId}.`);await delay(pE),x=await Bp(e,{rfqId:t.rfqId});}return x.status===RfqStatus.Failed||x.status===RfqStatus.Expired||x.status===RfqStatus.Canceled?{reason:SE(x.status,x.error?.code),rfqId:x.rfqId,status:"failed",...x.error===void 0?{}:{error:x.error}}:{rfqId:x.rfqId,status:"executing",...I===void 0?{}:{takerOrderHash:I}}}function EE(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 SE(e,r){return e===RfqStatus.Expired||r===RfqKnownErrorCode.ExpiredRfq?ComboAcceptFailureReason.AcceptanceWindowExpired:r===RfqKnownErrorCode.MakerDeclined?ComboAcceptFailureReason.MakerDeclined:ComboAcceptFailureReason.ExecutionFailed}function hE(e,r){let t=fr(e.account);return {builder:r.builderCode,maker:t.maker,makerAmount:r.makerAmount,metadata:uE,salt:TE().toString(),side:eo(r.direction),signatureType:t.signatureType,signer:t.signer,takerAmount:r.takerAmount,timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:r.positionId}}function TE(){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 xE(e,r,t){let o;try{o=await e.signer.signTypedData(Jr({domain:r,order:t}));}catch(n$1){throw n$1 instanceof k?n$1:n.fromError(n$1,"Could not sign the combo quote acceptance order.")}return {...t,signature:Xr({domain:r,order:t,signature:o})}}var CE=z$1.object({pollingIntervalMs:z$1.number().int().positive().optional(),rfqId:z$1.string().min(1).transform(toRfqId),timeoutMs:z$1.number().int().positive().optional()}),lw=o(h$1,Me,i,c,b,a);async function mw(e,r){wr(e);let t=l(r,CE),o=t.timeoutMs??cE,n=t.pollingIntervalMs??dE,s=Date.now()+o;for(;;){let a=await Bp(e,{rfqId:t.rfqId});if(a.status===RfqStatus.Filled||a.status===RfqExecutionStatus.Confirmed){if(a.txHash===void 0)throw new b(`RFQ ${a.rfqId} reached ${a.status} without a transaction hash.`);return {rfqId:a.rfqId,status:RfqStatus.Filled,txHash:a.txHash}}if(a.status===RfqStatus.Failed||a.status===RfqStatus.Expired||a.status===RfqStatus.Canceled)return {rfqId:a.rfqId,status:a.status,...a.error===void 0?{}:{error:a.error}};if(Date.now()>=s)throw new i(`Timed out after ${o}ms waiting for RFQ ${t.rfqId} to reach a terminal state.`);await delay(n);}}var IE=z$1.object({rfqId:z$1.string().min(1).transform(toRfqId)}),fw=o(h$1,Me,c,b,a);function Bp(e,r){wr(e);let t=l(r,IE);return unwrap(e.builderGateway.get(`${sn}/${encodeURIComponent(t.rfqId)}`).andThen(y(BuilderRfqStatusResponseSchema)).mapErr(an))}function wr(e){if(e.account.signerType==="SESSION_KEY")throw new a("Combos is not supported with Session Keys")}var Up=(m=>(m.Volume="volume",m.Volume24Hr="volume_24hr",m.Liquidity="liquidity",m.Competitive="competitive",m.ClosedTime="closed_time",m.StartDate="start_date",m.EndDate="end_date",m))(Up||{}),qE=z$1.object({q:z$1.string().trim().min(1),ascending:z$1.boolean().optional(),cache:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),eventsStatus:z$1.string().min(1).optional(),eventsTag:z$1.array(z$1.string()).optional(),excludeTagIds:z$1.array(z$1.number().int()).optional(),keepClosedMarkets:z$1.number().int().optional(),optimized:z$1.boolean().optional(),pageSize:A.default(10),presets:z$1.array(z$1.string()).optional(),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),searchProfiles:z$1.boolean().optional(),searchTags:z$1.boolean().optional(),sort:z$1.enum(Up).optional()}),Fw=o(h$1,g,c,b,a);function Bw(e,r){let{cursor:t,pageSize:o,...n}=l(r,qE);return C(s=>{let a=_(s,o);return e.gamma.get("/public-search",{params:R({...n,limitPerType:a.pageSize,page:a.offset},h({excludeTagIds:"exclude_tag_id"}))}).andThen(y(PublicSearchResponseSchema)).map(m=>({items:vE(m),hasMore:m.pagination?.hasMore??false,totalCount:m.pagination?.totalResults??void 0,nextCursor:m.pagination?.hasMore?z({offset:a.offset+1,pageSize:a.pageSize}):void 0}))},t??z({offset:1,pageSize:o}),{events:[],profiles:[],tags:[]})}function vE(e){return {events:e.events??[],profiles:e.profiles??[],tags:e.tags??[]}}var ME=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),excludeEvents:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),pageSize:A.max(50).default(20),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),slug:z$1.array(z$1.string()).optional()}),FE=z$1.object({id:z$1.string(),locale:z$1.string().optional()}),Vw=o(h$1,g,c,b,a);function $w(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,ME);return C(s=>{let a=_(s,o);return e.gamma.get("/series",{params:R({...n,limit:a.pageSize,offset:a.offset},h())}).andThen(y(ListSeriesResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var Yw=o(h$1,g,c,b,a);async function Qw(e,r){let t=l(r,FE);return unwrap(e.gamma.get(`series/${t.id}`,{params:R({locale:t.locale},h())}).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 f0=o(h$1,g,n,c,b,a);async function HE(e){mn(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 NE=[SessionSignerKnownScope.ALL],GE=z$1.object({address:EvmAddressSchema,idempotencyKey:z$1.string().trim().min(1).optional(),scopes:z$1.array(SessionSignerScopeSchema).min(1).default(NE),validUntil:z$1.number().int()}).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"]}),e.validUntil<=Math.floor(Date.now()/1e3)&&r.addIssue({code:"custom",message:"Session key expiry must be a future Unix timestamp.",path:["validUntil"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),y0=o(k,h$1,g,n,i,j,c,b,a);async function P0(e,r){if(mn(e),!e.hasBuilderApiKey)throw new a("Session-key authorization requires builder API-key authentication.");let t=l(r,GE),o=await W(e.signer)(Je(e,[Zn(e.account.wallet,t.address,BigInt(t.validUntil))])),n={deadline:o.depositWalletParams.deadline,nonce:o.nonce,scopes:t.scopes,sessionSignerAddress:t.address,signature:o.signature,validUntil:`${t.validUntil}`,walletAddress:e.account.wallet},s=await unwrap(e.relayer.post("/v1/session-signers/authorizations",{headers:{"Idempotency-Key":t.idempotencyKey??globalThis.crypto.randomUUID()},json:n}).andThen(y(RelayerAuthorizeSessionSignerResponseSchema)));cn({kind:"authorization",status:s.status});let a$1=await new ve(e,s).wait();return {sessionKey:await VE(e,{address:t.address,scopes:t.scopes,validUntil:t.validUntil}),transaction:a$1}}var KE=z$1.object({address:EvmAddressSchema,idempotencyKey:z$1.string().trim().min(1).optional()}).superRefine((e,r)=>{isSameEvmAddress(e.address,ZERO_ADDRESS)&&r.addIssue({code:"custom",message:"Session key address must not be the zero address.",path:["address"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),g0=o(k,h$1,g,n,i,j,c,b,a);async function R0(e,r){if(mn(e),!e.supportsGasless)throw new a("Session-key revocation requires API-key authentication that supports gasless transactions.");let t=l(r,KE),o=await W(e.signer)(Je(e,[Jn(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}).andThen(y(RelayerRevokeSessionSignerResponseSchema)));return cn({kind:"revocation",status:s.status}),{transaction:await new ve(e,{transactionHash:null,transactionId:s.transactionId}).wait()}}async function VE(e,r){for(let t=0;t<e.environment.relayerMaxPolls;t+=1){let o=(await HE(e)).find(n=>isSameEvmAddress(n.address,r.address)&&n.validUntil===r.validUntil&&$E(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 $E(e,r){let t=new Set(r);return new Set(e).size===t.size&&e.every(o=>t.has(o))}function mn(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 C0=o(h$1,g,c,b);async function I0(e){return unwrap(e.gamma.get("/sports").andThen(y(ListSportsMetadataResponseSchema)))}var b0=o(h$1,g,c,b);async function k0(e){return unwrap(e.gamma.get("/sports/market-types").andThen(y(SportsMarketTypesResponseSchema)))}var M0=o(c,a),XE=z$1.object({topic:z$1.literal("prices.crypto.chainlink.twap"),windowSeconds:z$1.union([z$1.literal(30),z$1.literal(60)]),symbols:z$1.array(z$1.string()).optional()}),eS=z$1.union([z$1.object({topic:z$1.literal("market"),assetIds:z$1.array(z$1.string()),tokenIds:z$1.never().optional(),customFeatureEnabled:z$1.boolean().optional()}),z$1.object({topic:z$1.literal("market"),assetIds:z$1.never().optional(),tokenIds:z$1.array(z$1.string()),customFeatureEnabled:z$1.boolean().optional()})]);async function F0(e,r){for(let o of r)switch(o.topic){case "market":l(o,eS);break;case "prices.crypto.chainlink.twap":l(o,XE);break}let t=await Promise.all(r.map(o=>rS(e,o)));return tS(t)}function rS(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 tS(e){let r;async function t(){r===void 0&&(r=Promise.all(e.map(n=>n.close())).then(()=>{})),await r;}let o=JE(...e);return {close:t,[Symbol.asyncIterator](){return o[Symbol.asyncIterator]()}}}var sS=z$1.object({ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),includeTemplate:z$1.boolean().optional(),isCarousel:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),pageSize:A.max(100).default(20)}),aS=z$1.union([z$1.object({id:z$1.string(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({slug:z$1.string(),locale:z$1.string().optional()})]),iS=z$1.object({id:z$1.string(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),pS=z$1.object({slug:z$1.string()}),cS=z$1.object({id:z$1.string(),locale:z$1.string().optional(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),dS=z$1.object({locale:z$1.string().optional(),slug:z$1.string(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),K0=o(h$1,g,c,b,a);function V0(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,sS);return C(s=>{let a=_(s,o);return e.gamma.get("/tags",{params:R({...n,limit:a.pageSize,offset:a.offset},h())}).andThen(y(ListTagsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var $0=o(h$1,g,c,b,a);async function Y0(e,r){let t=l(r,aS);return "id"in t?unwrap(e.gamma.get(`tags/${t.id}`,{params:R({includeTemplate:t.includeTemplate,locale:t.locale},h())}).andThen(y(TagSchema))):unwrap(e.gamma.get(`tags/slug/${t.slug}`,{params:R({locale:t.locale},h())}).andThen(y(TagSchema)))}var Q0=o(h$1,g,c,b,a);async function Z0(e,r){if("id"in r){let o=l(r,iS);return unwrap(e.gamma.get(`tags/${o.id}/related-tags`,{params:R({omitEmpty:o.omitEmpty,status:o.status},h())}).andThen(y(ListRelatedTagsResponseSchema)))}let t=l(r,pS);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags`).andThen(y(ListRelatedTagsResponseSchema)))}var J0=o(h$1,g,c,b,a);async function X0(e,r){if("id"in r){let o=l(r,cS);return unwrap(e.gamma.get(`tags/${o.id}/related-tags/tags`,{params:R({locale:o.locale,omitEmpty:o.omitEmpty,status:o.status},h())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}let t=l(r,dS);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags/tags`,{params:R({locale:t.locale,omitEmpty:t.omitEmpty,status:t.status},h())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}var mS=z$1.object({abbreviation:z$1.array(z$1.string()).optional(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),league:z$1.array(z$1.string()).optional(),name:z$1.array(z$1.string()).optional(),order:z$1.string().optional(),pageSize:A.max(100).default(20),providerId:z$1.array(z$1.number().int()).optional()}),cL=o(h$1,g,c,b,a);function dL(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,mS);return C(s=>{let a=_(s,o);return e.gamma.get("/teams",{params:R({...n,limit:a.pageSize,offset:a.offset},h({providerId:"provider_id"}))}).andThen(y(ListTeamsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?z({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var yS=z$1.object({amount:z$1.bigint(),metadata:Q.optional(),recipientAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),hL=o(a);async function PS(e,r){let t=l(r,yS);return async function*(){return e.account.walletType===WalletType.EOA?V(yield gS($(e.environment.chainId,Ot(t.tokenAddress,t.recipientAddress,t.amount)))):yield*await X(e,{calls:[Ot(t.tokenAddress,t.recipientAddress,t.amount)],metadata:t.metadata??`Transfer ${t.amount} of ${t.tokenAddress} to ${t.recipientAddress}`})}.call(null)}var TL=o(k,h$1,g,n,c,b,a);function xL(e,r){return PS(e,r).then(W(e.signer))}function gS(e){return {kind:"sendErc20TransferTransaction",request:e}}
2
- export{ch as $,gu as $a,uC as $b,Jr as $c,fA as $d,OO as $e,I0 as $f,Zh as A,xT as Aa,jx as Ab,vI as Ac,jq as Ad,QA as Ae,fw as Af,Lt as B,Dt as Ba,Hx as Bb,AI as Bc,Hq as Bd,ZA as Be,Bp as Bf,Jh as C,CT as Ca,Nx as Cb,OI as Cc,Nq as Cd,_r as D,IT as Da,Is as Db,WI as Dc,Df as Dd,Xh as E,Q as Ea,Gx as Eb,jI as Ec,Gq as Ed,ap as Ee,Mt as F,bT as Fa,bs as Fb,tb as Fc,Kq as Fd,RO as Fe,os as G,kT as Ga,Kx as Gb,_s as Gc,ct as Gd,pp as Ge,ns as H,tu as Ha,ks as Hb,ob as Hc,ja as Hd,EO as He,l as I,qT as Ia,Vx as Ib,nb as Ic,Ha as Id,dp as Ie,En as J,X as Ja,$x as Jb,sb as Jc,Na as Jd,UR as Je,kn as K,zt as Ka,Yx as Kb,ab as Kc,dt as Kd,up as Ke,BS as L,_t as La,Qx as Lb,ib as Lc,ut as Ld,SO as Le,fr as M,Je as Ma,Zx as Mb,pb as Mc,lt as Md,hO as Me,Up as Mf,qn as N,Wt as Na,Kr as Nb,cb as Nc,qi as Nd,TO as Ne,Fw as Nf,vn as O,jt as Oa,Jx as Ob,db as Oc,Oi as Od,xO as Oe,Bw as Of,JS as P,Ht as Pa,Xx as Pb,ub as Pc,Li as Pd,CO as Pe,Vw as Pf,XS as Q,vT as Qa,eC as Qb,lb as Qc,Wi as Qd,lp as Qe,$w as Qf,eh as R,ve as Ra,rC as Rb,mb as Rc,sA as Rd,IO as Re,Yw as Rf,rh as S,_T as Sa,tC as Sb,fb as Sc,aA as Sd,fp as Se,Qw as Sf,th as T,fu as Ta,oC as Tb,kb as Tc,iA as Td,bO as Te,oh as U,WT as Ua,nC as Ub,qb as Uc,pA as Ud,Pp as Ue,f0 as Uf,nh as V,ms as Va,sC as Vb,vb as Vc,cA as Vd,zR as Ve,HE as Vf,Ln as W,jT as Wa,aC as Wb,Ab as Wc,Eg as Wd,gp as We,y0 as Wf,sh as X,Pu as Xa,iC as Xb,Ob as Xc,dA as Xd,kO as Xe,P0 as Xf,ah as Y,HT as Ya,pC as Yb,wb as Yc,uA as Yd,qO as Ye,g0 as Yf,ih as Z,fs as Za,cC as Zb,Lb as Zc,lA as Zd,vO as Ze,R0 as Zf,ph as _,NT as _a,dC as _b,Mb as _c,mA as _d,AO as _e,C0 as _f,re as a,qt as aa,GT as ab,lC as ac,Xr as ad,yA as ae,Rp as af,b0 as ag,Nh as b,dh as ba,KT as bb,mC as bc,Gs as bd,PA as be,wO as bf,k0 as bg,Br as c,Fn as ca,XT as cb,IC as cc,_b as cd,gA as ce,WR as cf,M0 as cg,Gn as d,uh as da,xu as db,bC as dc,Wb as dd,RA as de,Tp as df,F0 as dg,Kn as e,lh as ea,ex as eb,kC as ec,eo as ed,EA as ee,LO as ef,K0 as eg,Ur as f,mh as fa,Cu as fb,Cl as fc,Xb as fd,SA as fe,MO as ff,V0 as fg,Vn as g,fh as ga,rx as gb,qC as gc,ek as gd,hA as ge,HR as gf,$0 as gg,$n as h,yh as ha,tx as hb,vC as hc,Jm as hd,TA as he,FO as hf,Y0 as hg,Yn as i,Ph as ia,ox as ib,ro as id,xA as ie,BO as if,Q0 as ig,Qn as j,gh as ja,nx as jb,jC as jc,dk as jd,CA as je,GO as jf,Z0 as jg,Dr as k,Rh as ka,sx as kb,HC as kc,uk as kd,IA as ke,KO as kf,J0 as kg,zr as l,Eh as la,ax as lb,NC as lc,tt as ld,bA as le,rn as lf,X0 as lg,Gh as m,Sh as ma,ix as mb,GC as mc,lk as md,Xg as me,ow as mf,cL as mg,Ot as n,hh as na,px as nb,KC as nc,Eo as nd,kA as ne,tn as nf,dL as ng,Zn as o,Th as oa,cx as ob,VC as oc,bf as od,qA as oe,nw as of,hL as og,Jn as p,wh as pa,dx as pb,pI as pc,So as pd,Zi as pe,on as pf,PS as pg,Kh as q,Lh as qa,ux as qb,cI as qc,kf as qd,_A as qe,sw as qf,TL as qg,Xn as r,Mh as ra,lx as rb,dI as rc,ho as rd,WA as re,aw as rf,xL as rg,Vh as s,Fh as sa,xx as sb,uI as sc,dq as sd,jA as se,iw as sf,es as t,Bh as ta,Cx as tb,lI as tc,uq as td,HA as te,Me as tf,$h as u,Uh as ua,Bx as ub,mI as uc,lq as ud,NA as ue,pw as uf,rs as v,Ux as vb,fI as vc,mq as vd,GA as ve,cw as vf,Yh as w,oT as wa,Dx as wb,yI as wc,hq as wd,KA as we,dw as wf,ts as x,V as xa,zx as xb,bI as xc,Tq as xd,VA as xe,uw as xf,Qh as y,pT as ya,_x as yb,kI as yc,Wq as yd,$A as ye,lw as yf,wt as z,ss as za,Wx as zb,qI as zc,Uf as zd,YA as ze,mw as zf};//# sourceMappingURL=chunk-RUTB3ZZX.js.map
3
- //# sourceMappingURL=chunk-RUTB3ZZX.js.map