@polymarket/client 0.6.0 → 0.7.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-RGx7fNNl.js';
3
+ import { S as Signer } from './types-C4sR5GA8.js';
4
4
  import '@polymarket/bindings';
5
5
  import '@polymarket/bindings/gamma';
6
6
  import '@polymarket/bindings/relayer';
package/dist/viem.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a,m,j,i,h,c as c$1}from'./chunk-MCGT5BAF.js';import {invariant,expectEvmAddress,expectEvmSignature,isPrivateKey,expectTxHash}from'@polymarket/types';import {createWalletClient,http,UserRejectedRequestError,TransactionExecutionError,WaitForTransactionReceiptTimeoutError}from'viem';import {privateKeyToAccount}from'viem/accounts';import {waitForTransactionReceipt}from'viem/actions';import {polygon}from'viem/chains';function H(t){return t.account!==void 0}function q(t){invariant(H(t),"Wallet client with account is required");let n=t.account,e=expectEvmAddress(typeof t.account=="string"?t.account:t.account.address);return {getAddress(){return Promise.resolve(e)},async signTypedData(r){return expectEvmSignature(await I(t,{account:n,...r}))},async signMessage(r){return expectEvmSignature(await R(t,{account:n,message:{raw:r}}))},async sendTransaction({chainId:r,...f}){await K(t,r);let m=await A(t,{account:n,...f});return new s(m,t)}}}function b(t,n={}){if(!isPrivateKey(t))throw new a("Expected a hex-encoded 32-byte private key.");return q(createWalletClient({account:privateKeyToAccount(t),chain:n.chain??polygon,transport:n.transport??http()}))}async function A(t,n){try{let e=await t.sendTransaction(n);return expectTxHash(e)}catch(e){c(e);}}async function K(t,n){try{let e=t.chain?.id??await t.getChainId();if(e!==n)throw new m(`Wallet client is connected to chain ${e}, expected ${n}`)}catch(e){throw e instanceof m?e:m.fromError(e,"Could not resolve wallet client chain ID")}}async function I(t,n){try{return await t.signTypedData(n)}catch(e){c(e);}}async function R(t,n){try{return await t.signMessage(n)}catch(e){c(e);}}function c(t){if(t instanceof UserRejectedRequestError)throw j.fromError(t);if(t instanceof TransactionExecutionError){let n=t.walk(e=>e instanceof UserRejectedRequestError);if(n)throw j.fromError(n)}throw m.fromError(t)}var s=class{transactionId=null;#t;#n;constructor(n,e){this.#t=expectTxHash(n),this.#n=e;}get transactionHash(){return this.#t}async wait(){try{let n=await waitForTransactionReceipt(this.#n,{hash:this.#t}),e=expectTxHash(n.transactionHash);if(this.#t=e,n.status==="reverted")throw new i(`Transaction ${e} reverted`);return {transactionHash:e,transactionId:null}}catch(n){throw n instanceof WaitForTransactionReceiptTimeoutError?new h(`Timed out waiting for transaction ${this.#t} to settle`,{cause:n}):c$1.fromError(n)}}};export{b as privateKey,q as signerFrom};//# sourceMappingURL=viem.js.map
1
+ import {a,n,k,j,i,c as c$1}from'./chunk-DLZLJOGO.js';import {invariant,expectEvmAddress,expectEvmSignature,isPrivateKey,expectTxHash}from'@polymarket/types';import {createWalletClient,http,UserRejectedRequestError,TransactionExecutionError,WaitForTransactionReceiptTimeoutError}from'viem';import {privateKeyToAccount}from'viem/accounts';import {waitForTransactionReceipt}from'viem/actions';import {polygon}from'viem/chains';function H(t){return t.account!==void 0}function q(t){invariant(H(t),"Wallet client with account is required");let n=t.account,e=expectEvmAddress(typeof t.account=="string"?t.account:t.account.address);return {getAddress(){return Promise.resolve(e)},async signTypedData(r){return expectEvmSignature(await I(t,{account:n,...r}))},async signMessage(r){return expectEvmSignature(await R(t,{account:n,message:{raw:r}}))},async sendTransaction({chainId:r,...f}){await K(t,r);let m=await A(t,{account:n,...f});return new s(m,t)}}}function b(t,n={}){if(!isPrivateKey(t))throw new a("Expected a hex-encoded 32-byte private key.");return q(createWalletClient({account:privateKeyToAccount(t),chain:n.chain??polygon,transport:n.transport??http()}))}async function A(t,n){try{let e=await t.sendTransaction(n);return expectTxHash(e)}catch(e){c(e);}}async function K(t,n$1){try{let e=t.chain?.id??await t.getChainId();if(e!==n$1)throw new n(`Wallet client is connected to chain ${e}, expected ${n$1}`)}catch(e){throw e instanceof n?e:n.fromError(e,"Could not resolve wallet client chain ID")}}async function I(t,n){try{return await t.signTypedData(n)}catch(e){c(e);}}async function R(t,n){try{return await t.signMessage(n)}catch(e){c(e);}}function c(t){if(t instanceof UserRejectedRequestError)throw k.fromError(t);if(t instanceof TransactionExecutionError){let n=t.walk(e=>e instanceof UserRejectedRequestError);if(n)throw k.fromError(n)}throw n.fromError(t)}var s=class{transactionId=null;#t;#n;constructor(n,e){this.#t=expectTxHash(n),this.#n=e;}get transactionHash(){return this.#t}async wait(){try{let n=await waitForTransactionReceipt(this.#n,{hash:this.#t}),e=expectTxHash(n.transactionHash);if(this.#t=e,n.status==="reverted")throw new j(`Transaction ${e} reverted`);return {transactionHash:e,transactionId:null}}catch(n){throw n instanceof WaitForTransactionReceiptTimeoutError?new i(`Timed out waiting for transaction ${this.#t} to settle`,{cause:n}):c$1.fromError(n)}}};export{b as privateKey,q as signerFrom};//# sourceMappingURL=viem.js.map
2
2
  //# sourceMappingURL=viem.js.map
package/dist/viem.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/viem.ts"],"names":["isWalletClientWithAccount","walletClient","signerFrom","invariant","account","address","expectEvmAddress","payload","expectEvmSignature","signTypedData","message","signMessage","chainId","request","assertChainId","hash","sendTransaction","DirectTransactionHandle","privateKey","value","options","isPrivateKey","UserInputError","createWalletClient","privateKeyToAccount","polygon","http","expectTxHash","error","throwSigningWorkflowError","expectedChainId","actualChainId","SigningError","UserRejectedRequestError","CancelledSigningError","TransactionExecutionError","rejected","err","#transactionHash","#walletClient","transactionHash","receipt","waitForTransactionReceipt","TransactionFailedError","WaitForTransactionReceiptTimeoutError","TimeoutError","TransportError"],"mappings":"waA2CA,SAASA,CAAAA,CACPC,CAAAA,CACyD,CACzD,OAAOA,CAAAA,CAAa,OAAA,GAAY,MAClC,CAEO,SAASC,EAAWD,CAAAA,CAAoC,CAC7DE,SAAAA,CACEH,CAAAA,CAA0BC,CAAY,CAAA,CACtC,wCACF,CAAA,CAEA,IAAMG,EAAUH,CAAAA,CAAa,OAAA,CACvBI,EAAUC,gBAAAA,CACd,OAAOL,CAAAA,CAAa,OAAA,EAAY,QAAA,CAC5BA,CAAAA,CAAa,QACbA,CAAAA,CAAa,OAAA,CAAQ,OAC3B,CAAA,CAEA,OAAO,CACL,YAAa,CACX,OAAO,OAAA,CAAQ,OAAA,CAAQI,CAAO,CAChC,EACA,MAAM,aAAA,CAAcE,CAAAA,CAAS,CAC3B,OAAOC,kBAAAA,CACL,MAAMC,CAAAA,CAAcR,CAAAA,CAAc,CAChC,OAAA,CAAAG,CAAAA,CACA,GAAGG,CACL,CAAC,CACH,CACF,CAAA,CACA,MAAM,WAAA,CAAYG,EAAS,CACzB,OAAOF,kBAAAA,CACL,MAAMG,CAAAA,CAAYV,CAAAA,CAAc,CAC9B,OAAA,CAAAG,CAAAA,CACA,QAAS,CAAE,GAAA,CAAKM,CAAQ,CAC1B,CAAC,CACH,CACF,CAAA,CACA,MAAM,gBAAgB,CAAE,OAAA,CAAAE,CAAAA,CAAS,GAAGC,CAAQ,CAAA,CAAG,CAC7C,MAAMC,CAAAA,CAAcb,CAAAA,CAAcW,CAAO,CAAA,CACzC,IAAMG,EAAO,MAAMC,CAAAA,CAAgBf,EAAc,CAC/C,OAAA,CAAAG,EACA,GAAGS,CACL,CAAC,CAAA,CACD,OAAO,IAAII,EAAwBF,CAAAA,CAAMd,CAAY,CACvD,CACF,CACF,CAaO,SAASiB,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAAmC,EAAC,CAC5B,CACR,GAAI,CAACC,YAAAA,CAAaF,CAAK,CAAA,CACrB,MAAM,IAAIG,CAAAA,CAAe,6CAA6C,CAAA,CAGxE,OAAOpB,CAAAA,CACLqB,kBAAAA,CAAmB,CACjB,OAAA,CAASC,mBAAAA,CAAoBL,CAAK,CAAA,CAClC,KAAA,CAAOC,CAAAA,CAAQ,OAASK,OAAAA,CACxB,SAAA,CAAWL,CAAAA,CAAQ,SAAA,EAAaM,IAAAA,EAClC,CAAC,CACH,CACF,CAEA,eAAeV,CAAAA,CAMbf,CAAAA,CACAY,EACiB,CACjB,GAAI,CACF,IAAME,CAAAA,CAAO,MAAMd,EAAa,eAAA,CAAgBY,CAAO,CAAA,CAEvD,OAAOc,YAAAA,CAAaZ,CAAI,CAC1B,CAAA,MAASa,CAAAA,CAAO,CACdC,CAAAA,CAA0BD,CAAK,EACjC,CACF,CAEA,eAAed,EACbb,CAAAA,CACA6B,CAAAA,CACe,CACf,GAAI,CACF,IAAMC,CAAAA,CACJ9B,CAAAA,CAAa,KAAA,EAAO,IAAO,MAAMA,CAAAA,CAAa,UAAA,EAAW,CAE3D,GAAI8B,CAAAA,GAAkBD,EACpB,MAAM,IAAIE,CAAAA,CACR,CAAA,oCAAA,EAAuCD,CAAa,CAAA,WAAA,EAAcD,CAAe,CAAA,CACnF,CAEJ,OAASF,CAAAA,CAAO,CACd,MAAMA,CAAAA,YAAiBI,CAAAA,CACnBJ,CAAAA,CACAI,CAAAA,CAAa,SAAA,CACXJ,CAAAA,CACA,0CACF,CACN,CACF,CAEA,eAAenB,CAAAA,CAMbR,CAAAA,CAAuDY,EAAkB,CACzE,GAAI,CACF,OAAO,MAAMZ,CAAAA,CAAa,cAAcY,CAAO,CACjD,OAASe,CAAAA,CAAO,CACdC,EAA0BD,CAAK,EACjC,CACF,CAEA,eAAejB,CAAAA,CAMbV,EAAuDY,CAAAA,CAAkB,CACzE,GAAI,CACF,OAAO,MAAMZ,EAAa,WAAA,CAAYY,CAAO,CAC/C,CAAA,MAASe,CAAAA,CAAO,CACdC,EAA0BD,CAAK,EACjC,CACF,CAEA,SAASC,CAAAA,CAA0BD,EAAuB,CACxD,GAAIA,CAAAA,YAAiBK,wBAAAA,CACnB,MAAMC,CAAAA,CAAsB,UAAUN,CAAK,CAAA,CAG7C,GAAIA,CAAAA,YAAiBO,yBAAAA,CAA2B,CAC9C,IAAMC,CAAAA,CAAWR,CAAAA,CAAM,IAAA,CACpBS,CAAAA,EAAQA,CAAAA,YAAeJ,wBAC1B,EAEA,GAAIG,CAAAA,CACF,MAAMF,CAAAA,CAAsB,SAAA,CAAUE,CAAQ,CAElD,CAEA,MAAMJ,CAAAA,CAAa,SAAA,CAAUJ,CAAK,CACpC,CAEA,IAAMX,CAAAA,CAAN,KAA2D,CAChD,aAAA,CAAgB,KAEzBqB,EAAAA,CACSC,EAAAA,CAET,WAAA,CAAYC,CAAAA,CAAuBvC,CAAAA,CAA4B,CAC7D,KAAKqC,EAAAA,CAAmBX,YAAAA,CAAaa,CAAe,CAAA,CACpD,IAAA,CAAKD,EAAAA,CAAgBtC,EACvB,CAEA,IAAI,eAAA,EAAkB,CACpB,OAAO,IAAA,CAAKqC,EACd,CAEA,MAAM,IAAA,EAAO,CACX,GAAI,CACF,IAAMG,CAAAA,CAAU,MAAMC,yBAAAA,CAA0B,IAAA,CAAKH,EAAAA,CAAe,CAClE,KAAM,IAAA,CAAKD,EACb,CAAC,CAAA,CAEKE,CAAAA,CAAkBb,aAAac,CAAAA,CAAQ,eAAe,CAAA,CAM5D,GAFA,IAAA,CAAKH,EAAAA,CAAmBE,EAEpBC,CAAAA,CAAQ,MAAA,GAAW,UAAA,CACrB,MAAM,IAAIE,CAAAA,CACR,eAAeH,CAAe,CAAA,SAAA,CAChC,CAAA,CAGF,OAAO,CACL,eAAA,CAAAA,EACA,aAAA,CAAe,IACjB,CACF,CAAA,MAASZ,CAAAA,CAAO,CACd,MAAIA,CAAAA,YAAiBgB,qCAAAA,CACb,IAAIC,CAAAA,CACR,CAAA,kCAAA,EAAqC,IAAA,CAAKP,EAAgB,CAAA,UAAA,CAAA,CAC1D,CAAE,KAAA,CAAOV,CAAM,CACjB,CAAA,CAGIkB,IAAe,SAAA,CAAUlB,CAAK,CACtC,CACF,CACF,CAAA","file":"viem.js","sourcesContent":["import {\n expectEvmAddress,\n expectEvmSignature,\n expectTxHash,\n invariant,\n isPrivateKey,\n type PrivateKey,\n type TxHash,\n} from '@polymarket/types';\nimport {\n type Account,\n type Chain,\n createWalletClient,\n type Hash,\n http,\n type SendTransactionParameters,\n type SendTransactionRequest,\n TransactionExecutionError,\n type Transport,\n UserRejectedRequestError,\n WaitForTransactionReceiptTimeoutError,\n type WalletClient,\n} from 'viem';\nimport { privateKeyToAccount } from 'viem/accounts';\nimport { waitForTransactionReceipt } from 'viem/actions';\nimport { polygon } from 'viem/chains';\nimport {\n CancelledSigningError,\n SigningError,\n TimeoutError,\n TransactionFailedError,\n TransportError,\n UserInputError,\n} from './errors';\nimport type { Signer, TransactionHandle } from './types';\n\nexport type PrivateKeySignerOptions = {\n /** Chain used when sending direct EOA transactions. */\n chain?: Chain;\n /** Transport used when sending direct EOA transactions. */\n transport?: Transport;\n};\n\nfunction isWalletClientWithAccount(\n walletClient: WalletClient,\n): walletClient is WalletClient<Transport, Chain, Account> {\n return walletClient.account !== undefined;\n}\n\nexport function signerFrom(walletClient: WalletClient): Signer {\n invariant(\n isWalletClientWithAccount(walletClient),\n 'Wallet client with account is required',\n );\n\n const account = walletClient.account;\n const address = expectEvmAddress(\n typeof walletClient.account === 'string'\n ? walletClient.account\n : walletClient.account.address,\n );\n\n return {\n getAddress() {\n return Promise.resolve(address);\n },\n async signTypedData(payload) {\n return expectEvmSignature(\n await signTypedData(walletClient, {\n account,\n ...payload,\n }),\n );\n },\n async signMessage(message) {\n return expectEvmSignature(\n await signMessage(walletClient, {\n account,\n message: { raw: message },\n }),\n );\n },\n async sendTransaction({ chainId, ...request }) {\n await assertChainId(walletClient, chainId);\n const hash = await sendTransaction(walletClient, {\n account,\n ...request,\n });\n return new DirectTransactionHandle(hash, walletClient);\n },\n };\n}\n\n/**\n * Creates a signer from a private key using viem local account signing.\n *\n * @example\n * ```ts\n * const secureClient = await createSecureClient({\n * signer: privateKey(process.env.PRIVATE_KEY),\n * wallet: '0x...',\n * });\n * ```\n */\nexport function privateKey(\n value: PrivateKey | string | undefined,\n options: PrivateKeySignerOptions = {},\n): Signer {\n if (!isPrivateKey(value)) {\n throw new UserInputError('Expected a hex-encoded 32-byte private key.');\n }\n\n return signerFrom(\n createWalletClient({\n account: privateKeyToAccount(value),\n chain: options.chain ?? polygon,\n transport: options.transport ?? http(),\n }),\n );\n}\n\nasync function sendTransaction<\n account extends Account,\n chain extends Chain,\n const request extends SendTransactionRequest<chain, chainOverride>,\n chainOverride extends Chain | undefined = undefined,\n>(\n walletClient: WalletClient<Transport, chain, account>,\n request: SendTransactionParameters<chain, account, chainOverride, request>,\n): Promise<TxHash> {\n try {\n const hash = await walletClient.sendTransaction(request);\n\n return expectTxHash(hash);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function assertChainId(\n walletClient: WalletClient,\n expectedChainId: number,\n): Promise<void> {\n try {\n const actualChainId =\n walletClient.chain?.id ?? (await walletClient.getChainId());\n\n if (actualChainId !== expectedChainId) {\n throw new SigningError(\n `Wallet client is connected to chain ${actualChainId}, expected ${expectedChainId}`,\n );\n }\n } catch (error) {\n throw error instanceof SigningError\n ? error\n : SigningError.fromError(\n error,\n 'Could not resolve wallet client chain ID',\n );\n }\n}\n\nasync function signTypedData<\n account extends Account,\n chain extends Chain,\n const request extends Parameters<\n WalletClient<Transport, chain, account>['signTypedData']\n >[0],\n>(walletClient: WalletClient<Transport, chain, account>, request: request) {\n try {\n return await walletClient.signTypedData(request);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signMessage<\n account extends Account,\n chain extends Chain,\n const request extends Parameters<\n WalletClient<Transport, chain, account>['signMessage']\n >[0],\n>(walletClient: WalletClient<Transport, chain, account>, request: request) {\n try {\n return await walletClient.signMessage(request);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nfunction throwSigningWorkflowError(error: unknown): never {\n if (error instanceof UserRejectedRequestError) {\n throw CancelledSigningError.fromError(error);\n }\n\n if (error instanceof TransactionExecutionError) {\n const rejected = error.walk(\n (err) => err instanceof UserRejectedRequestError,\n );\n\n if (rejected) {\n throw CancelledSigningError.fromError(rejected);\n }\n }\n\n throw SigningError.fromError(error);\n}\n\nclass DirectTransactionHandle implements TransactionHandle {\n readonly transactionId = null;\n\n #transactionHash: TxHash;\n readonly #walletClient: WalletClient;\n\n constructor(transactionHash: Hash, walletClient: WalletClient) {\n this.#transactionHash = expectTxHash(transactionHash);\n this.#walletClient = walletClient;\n }\n\n get transactionHash() {\n return this.#transactionHash;\n }\n\n async wait() {\n try {\n const receipt = await waitForTransactionReceipt(this.#walletClient, {\n hash: this.#transactionHash,\n });\n\n const transactionHash = expectTxHash(receipt.transactionHash);\n\n // viem's waitForTransactionReceipt supports transaction replacement\n // so it's important to use the transaction hash from the receipt\n this.#transactionHash = transactionHash;\n\n if (receipt.status === 'reverted') {\n throw new TransactionFailedError(\n `Transaction ${transactionHash} reverted`,\n );\n }\n\n return {\n transactionHash,\n transactionId: null,\n };\n } catch (error) {\n if (error instanceof WaitForTransactionReceiptTimeoutError) {\n throw new TimeoutError(\n `Timed out waiting for transaction ${this.#transactionHash} to settle`,\n { cause: error },\n );\n }\n\n throw TransportError.fromError(error);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/viem.ts"],"names":["isWalletClientWithAccount","walletClient","signerFrom","invariant","account","address","expectEvmAddress","payload","expectEvmSignature","signTypedData","message","signMessage","chainId","request","assertChainId","hash","sendTransaction","DirectTransactionHandle","privateKey","value","options","isPrivateKey","UserInputError","createWalletClient","privateKeyToAccount","polygon","http","expectTxHash","error","throwSigningWorkflowError","expectedChainId","actualChainId","SigningError","UserRejectedRequestError","CancelledSigningError","TransactionExecutionError","rejected","err","#transactionHash","#walletClient","transactionHash","receipt","waitForTransactionReceipt","TransactionFailedError","WaitForTransactionReceiptTimeoutError","TimeoutError","TransportError"],"mappings":"waA2CA,SAASA,CAAAA,CACPC,CAAAA,CACyD,CACzD,OAAOA,CAAAA,CAAa,OAAA,GAAY,MAClC,CAEO,SAASC,EAAWD,CAAAA,CAAoC,CAC7DE,SAAAA,CACEH,CAAAA,CAA0BC,CAAY,CAAA,CACtC,wCACF,CAAA,CAEA,IAAMG,EAAUH,CAAAA,CAAa,OAAA,CACvBI,EAAUC,gBAAAA,CACd,OAAOL,CAAAA,CAAa,OAAA,EAAY,QAAA,CAC5BA,CAAAA,CAAa,QACbA,CAAAA,CAAa,OAAA,CAAQ,OAC3B,CAAA,CAEA,OAAO,CACL,YAAa,CACX,OAAO,OAAA,CAAQ,OAAA,CAAQI,CAAO,CAChC,EACA,MAAM,aAAA,CAAcE,CAAAA,CAAS,CAC3B,OAAOC,kBAAAA,CACL,MAAMC,CAAAA,CAAcR,CAAAA,CAAc,CAChC,OAAA,CAAAG,CAAAA,CACA,GAAGG,CACL,CAAC,CACH,CACF,CAAA,CACA,MAAM,WAAA,CAAYG,EAAS,CACzB,OAAOF,kBAAAA,CACL,MAAMG,CAAAA,CAAYV,CAAAA,CAAc,CAC9B,OAAA,CAAAG,CAAAA,CACA,QAAS,CAAE,GAAA,CAAKM,CAAQ,CAC1B,CAAC,CACH,CACF,CAAA,CACA,MAAM,gBAAgB,CAAE,OAAA,CAAAE,CAAAA,CAAS,GAAGC,CAAQ,CAAA,CAAG,CAC7C,MAAMC,CAAAA,CAAcb,CAAAA,CAAcW,CAAO,CAAA,CACzC,IAAMG,EAAO,MAAMC,CAAAA,CAAgBf,EAAc,CAC/C,OAAA,CAAAG,EACA,GAAGS,CACL,CAAC,CAAA,CACD,OAAO,IAAII,EAAwBF,CAAAA,CAAMd,CAAY,CACvD,CACF,CACF,CAaO,SAASiB,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAAmC,EAAC,CAC5B,CACR,GAAI,CAACC,YAAAA,CAAaF,CAAK,CAAA,CACrB,MAAM,IAAIG,CAAAA,CAAe,6CAA6C,CAAA,CAGxE,OAAOpB,CAAAA,CACLqB,kBAAAA,CAAmB,CACjB,OAAA,CAASC,mBAAAA,CAAoBL,CAAK,CAAA,CAClC,KAAA,CAAOC,CAAAA,CAAQ,OAASK,OAAAA,CACxB,SAAA,CAAWL,CAAAA,CAAQ,SAAA,EAAaM,IAAAA,EAClC,CAAC,CACH,CACF,CAEA,eAAeV,CAAAA,CAMbf,CAAAA,CACAY,EACiB,CACjB,GAAI,CACF,IAAME,CAAAA,CAAO,MAAMd,EAAa,eAAA,CAAgBY,CAAO,CAAA,CAEvD,OAAOc,YAAAA,CAAaZ,CAAI,CAC1B,CAAA,MAASa,CAAAA,CAAO,CACdC,CAAAA,CAA0BD,CAAK,EACjC,CACF,CAEA,eAAed,EACbb,CAAAA,CACA6B,GAAAA,CACe,CACf,GAAI,CACF,IAAMC,CAAAA,CACJ9B,CAAAA,CAAa,KAAA,EAAO,IAAO,MAAMA,CAAAA,CAAa,UAAA,EAAW,CAE3D,GAAI8B,CAAAA,GAAkBD,IACpB,MAAM,IAAIE,CAAAA,CACR,CAAA,oCAAA,EAAuCD,CAAa,CAAA,WAAA,EAAcD,GAAe,CAAA,CACnF,CAEJ,OAASF,CAAAA,CAAO,CACd,MAAMA,CAAAA,YAAiBI,CAAAA,CACnBJ,CAAAA,CACAI,CAAAA,CAAa,SAAA,CACXJ,CAAAA,CACA,0CACF,CACN,CACF,CAEA,eAAenB,CAAAA,CAMbR,CAAAA,CAAuDY,EAAkB,CACzE,GAAI,CACF,OAAO,MAAMZ,CAAAA,CAAa,cAAcY,CAAO,CACjD,OAASe,CAAAA,CAAO,CACdC,EAA0BD,CAAK,EACjC,CACF,CAEA,eAAejB,CAAAA,CAMbV,EAAuDY,CAAAA,CAAkB,CACzE,GAAI,CACF,OAAO,MAAMZ,EAAa,WAAA,CAAYY,CAAO,CAC/C,CAAA,MAASe,CAAAA,CAAO,CACdC,EAA0BD,CAAK,EACjC,CACF,CAEA,SAASC,CAAAA,CAA0BD,EAAuB,CACxD,GAAIA,CAAAA,YAAiBK,wBAAAA,CACnB,MAAMC,CAAAA,CAAsB,UAAUN,CAAK,CAAA,CAG7C,GAAIA,CAAAA,YAAiBO,yBAAAA,CAA2B,CAC9C,IAAMC,CAAAA,CAAWR,CAAAA,CAAM,IAAA,CACpBS,CAAAA,EAAQA,CAAAA,YAAeJ,wBAC1B,EAEA,GAAIG,CAAAA,CACF,MAAMF,CAAAA,CAAsB,SAAA,CAAUE,CAAQ,CAElD,CAEA,MAAMJ,CAAAA,CAAa,SAAA,CAAUJ,CAAK,CACpC,CAEA,IAAMX,CAAAA,CAAN,KAA2D,CAChD,aAAA,CAAgB,KAEzBqB,EAAAA,CACSC,EAAAA,CAET,WAAA,CAAYC,CAAAA,CAAuBvC,CAAAA,CAA4B,CAC7D,KAAKqC,EAAAA,CAAmBX,YAAAA,CAAaa,CAAe,CAAA,CACpD,IAAA,CAAKD,EAAAA,CAAgBtC,EACvB,CAEA,IAAI,eAAA,EAAkB,CACpB,OAAO,IAAA,CAAKqC,EACd,CAEA,MAAM,IAAA,EAAO,CACX,GAAI,CACF,IAAMG,CAAAA,CAAU,MAAMC,yBAAAA,CAA0B,IAAA,CAAKH,EAAAA,CAAe,CAClE,KAAM,IAAA,CAAKD,EACb,CAAC,CAAA,CAEKE,CAAAA,CAAkBb,aAAac,CAAAA,CAAQ,eAAe,CAAA,CAM5D,GAFA,IAAA,CAAKH,EAAAA,CAAmBE,EAEpBC,CAAAA,CAAQ,MAAA,GAAW,UAAA,CACrB,MAAM,IAAIE,CAAAA,CACR,eAAeH,CAAe,CAAA,SAAA,CAChC,CAAA,CAGF,OAAO,CACL,eAAA,CAAAA,EACA,aAAA,CAAe,IACjB,CACF,CAAA,MAASZ,CAAAA,CAAO,CACd,MAAIA,CAAAA,YAAiBgB,qCAAAA,CACb,IAAIC,CAAAA,CACR,CAAA,kCAAA,EAAqC,IAAA,CAAKP,EAAgB,CAAA,UAAA,CAAA,CAC1D,CAAE,KAAA,CAAOV,CAAM,CACjB,CAAA,CAGIkB,IAAe,SAAA,CAAUlB,CAAK,CACtC,CACF,CACF,CAAA","file":"viem.js","sourcesContent":["import {\n expectEvmAddress,\n expectEvmSignature,\n expectTxHash,\n invariant,\n isPrivateKey,\n type PrivateKey,\n type TxHash,\n} from '@polymarket/types';\nimport {\n type Account,\n type Chain,\n createWalletClient,\n type Hash,\n http,\n type SendTransactionParameters,\n type SendTransactionRequest,\n TransactionExecutionError,\n type Transport,\n UserRejectedRequestError,\n WaitForTransactionReceiptTimeoutError,\n type WalletClient,\n} from 'viem';\nimport { privateKeyToAccount } from 'viem/accounts';\nimport { waitForTransactionReceipt } from 'viem/actions';\nimport { polygon } from 'viem/chains';\nimport {\n CancelledSigningError,\n SigningError,\n TimeoutError,\n TransactionFailedError,\n TransportError,\n UserInputError,\n} from './errors';\nimport type { Signer, TransactionHandle } from './types';\n\nexport type PrivateKeySignerOptions = {\n /** Chain used when sending direct EOA transactions. */\n chain?: Chain;\n /** Transport used when sending direct EOA transactions. */\n transport?: Transport;\n};\n\nfunction isWalletClientWithAccount(\n walletClient: WalletClient,\n): walletClient is WalletClient<Transport, Chain, Account> {\n return walletClient.account !== undefined;\n}\n\nexport function signerFrom(walletClient: WalletClient): Signer {\n invariant(\n isWalletClientWithAccount(walletClient),\n 'Wallet client with account is required',\n );\n\n const account = walletClient.account;\n const address = expectEvmAddress(\n typeof walletClient.account === 'string'\n ? walletClient.account\n : walletClient.account.address,\n );\n\n return {\n getAddress() {\n return Promise.resolve(address);\n },\n async signTypedData(payload) {\n return expectEvmSignature(\n await signTypedData(walletClient, {\n account,\n ...payload,\n }),\n );\n },\n async signMessage(message) {\n return expectEvmSignature(\n await signMessage(walletClient, {\n account,\n message: { raw: message },\n }),\n );\n },\n async sendTransaction({ chainId, ...request }) {\n await assertChainId(walletClient, chainId);\n const hash = await sendTransaction(walletClient, {\n account,\n ...request,\n });\n return new DirectTransactionHandle(hash, walletClient);\n },\n };\n}\n\n/**\n * Creates a signer from a private key using viem local account signing.\n *\n * @example\n * ```ts\n * const secureClient = await createSecureClient({\n * signer: privateKey(process.env.PRIVATE_KEY),\n * wallet: '0x...',\n * });\n * ```\n */\nexport function privateKey(\n value: PrivateKey | string | undefined,\n options: PrivateKeySignerOptions = {},\n): Signer {\n if (!isPrivateKey(value)) {\n throw new UserInputError('Expected a hex-encoded 32-byte private key.');\n }\n\n return signerFrom(\n createWalletClient({\n account: privateKeyToAccount(value),\n chain: options.chain ?? polygon,\n transport: options.transport ?? http(),\n }),\n );\n}\n\nasync function sendTransaction<\n account extends Account,\n chain extends Chain,\n const request extends SendTransactionRequest<chain, chainOverride>,\n chainOverride extends Chain | undefined = undefined,\n>(\n walletClient: WalletClient<Transport, chain, account>,\n request: SendTransactionParameters<chain, account, chainOverride, request>,\n): Promise<TxHash> {\n try {\n const hash = await walletClient.sendTransaction(request);\n\n return expectTxHash(hash);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function assertChainId(\n walletClient: WalletClient,\n expectedChainId: number,\n): Promise<void> {\n try {\n const actualChainId =\n walletClient.chain?.id ?? (await walletClient.getChainId());\n\n if (actualChainId !== expectedChainId) {\n throw new SigningError(\n `Wallet client is connected to chain ${actualChainId}, expected ${expectedChainId}`,\n );\n }\n } catch (error) {\n throw error instanceof SigningError\n ? error\n : SigningError.fromError(\n error,\n 'Could not resolve wallet client chain ID',\n );\n }\n}\n\nasync function signTypedData<\n account extends Account,\n chain extends Chain,\n const request extends Parameters<\n WalletClient<Transport, chain, account>['signTypedData']\n >[0],\n>(walletClient: WalletClient<Transport, chain, account>, request: request) {\n try {\n return await walletClient.signTypedData(request);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signMessage<\n account extends Account,\n chain extends Chain,\n const request extends Parameters<\n WalletClient<Transport, chain, account>['signMessage']\n >[0],\n>(walletClient: WalletClient<Transport, chain, account>, request: request) {\n try {\n return await walletClient.signMessage(request);\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nfunction throwSigningWorkflowError(error: unknown): never {\n if (error instanceof UserRejectedRequestError) {\n throw CancelledSigningError.fromError(error);\n }\n\n if (error instanceof TransactionExecutionError) {\n const rejected = error.walk(\n (err) => err instanceof UserRejectedRequestError,\n );\n\n if (rejected) {\n throw CancelledSigningError.fromError(rejected);\n }\n }\n\n throw SigningError.fromError(error);\n}\n\nclass DirectTransactionHandle implements TransactionHandle {\n readonly transactionId = null;\n\n #transactionHash: TxHash;\n readonly #walletClient: WalletClient;\n\n constructor(transactionHash: Hash, walletClient: WalletClient) {\n this.#transactionHash = expectTxHash(transactionHash);\n this.#walletClient = walletClient;\n }\n\n get transactionHash() {\n return this.#transactionHash;\n }\n\n async wait() {\n try {\n const receipt = await waitForTransactionReceipt(this.#walletClient, {\n hash: this.#transactionHash,\n });\n\n const transactionHash = expectTxHash(receipt.transactionHash);\n\n // viem's waitForTransactionReceipt supports transaction replacement\n // so it's important to use the transaction hash from the receipt\n this.#transactionHash = transactionHash;\n\n if (receipt.status === 'reverted') {\n throw new TransactionFailedError(\n `Transaction ${transactionHash} reverted`,\n );\n }\n\n return {\n transactionHash,\n transactionId: null,\n };\n } catch (error) {\n if (error instanceof WaitForTransactionReceiptTimeoutError) {\n throw new TimeoutError(\n `Timed out waiting for transaction ${this.#transactionHash} to settle`,\n { cause: error },\n );\n }\n\n throw TransportError.fromError(error);\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymarket/client",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "The Polymarket TypeScript client",
5
5
  "repository": {
6
6
  "type": "git",
@@ -93,8 +93,8 @@
93
93
  "ky": "^1.14.3",
94
94
  "ox": "^0.14.16",
95
95
  "zod": "^4.3.6",
96
- "@polymarket/bindings": "0.6.0",
97
- "@polymarket/types": "0.1.0"
96
+ "@polymarket/bindings": "0.7.0",
97
+ "@polymarket/types": "0.2.0"
98
98
  },
99
99
  "publishConfig": {
100
100
  "access": "public"
@@ -1,3 +0,0 @@
1
- import {n,g as g$1,f,m,c,b,a,h,i,j as j$1,k,l as l$1,e}from'./chunk-MCGT5BAF.js';import {PaginationCursorSchema,ComboConditionIdSchema,TransactionIdSchema,EvmAddressSchema,BuilderCodeSchema,TokenIdSchema,ConditionIdSchema,OrderSideSchema,CommentParentEntityTypeSchema,EventIdSchema,CommentIdSchema,IsoDateTimeStringSchema,IsoCalendarDateStringSchema,PositionIdSchema,OrderType,PositiveDecimalNumberSchema,OrderSide,TxHashSchema,MarketIdSchema,toPositionId,toBaseUnits,toRfqId,toRfqQuoteId,toBuilderCode,TradeStatus,toPaginationCursor,toDecimalString,toComboConditionId}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}from'@polymarket/bindings/clob';import {isHexString,expectNonEmptyArray,isPrivateKey,expectEvmAddress,PolymarketError,expectHexString,isSameEvmAddress,never,unwrap,invariant,delay,expectEvmSignature,ZERO_ADDRESS,expectErc1271Signature,ResultAsync,setNonBlockingInterval,setNonBlockingTimeout,expectPrivateKey,isPresent,ok,err,expectPresent}from'@polymarket/types';import {z}from'zod';import {WalletType,SeriesIdSchema,MarketClarificationState,ListCommentsResponseSchema,ListEventsKeysetResponseSchema,EventSchema,FetchEventTagsResponseSchema,ListMarketClarificationsResponseSchema,ListMarketsKeysetResponseSchema,FetchMarketTagsResponseSchema,MarketSchema,PublicProfileSchema,PublicSearchResponseSchema,ListSeriesResponseSchema,SeriesSchema,ListSportsMetadataResponseSchema,SportsMarketTypesResponseSchema,ListTagsResponseSchema,TagSchema,ListRelatedTagsResponseSchema,ListRelatedTagResourcesResponseSchema,ListTeamsResponseSchema}from'@polymarket/bindings/gamma';import {AbiFunction,Hash,Bytes,AbiParameters,ContractAddress,TypedData,Secp256k1,Address,Signature}from'ox';import Do 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 Ae,ComboPositionStatus as Be,ComboActivityType as sa}from'@polymarket/bindings/data';import {RelayerTransactionType,RelayerExecuteRequestSchema,RelayerTransactionState,RelayerExecuteParamsSchema,RelayerDeployedResponseSchema,GaslessTransactionSchema,RelayerExecuteResponseSchema}from'@polymarket/bindings/relayer';import {CollateralReturnPlanSchema,RfqRejectionCode,RfqSide,RfqRequestedSizeUnit,RfqDirection,RfqKnownErrorCode,ComboQuoteUnavailableReason,RfqStatus,ComboAcceptFailureReason,RfqExecutionStatus,CollateralReturnPlanResponseSchema,ListComboMarketsResponseSchema,BuilderRfqCreateResponseSchema,BuilderRfqStatusResponseSchema}from'@polymarket/bindings/combos';export{ComboQuoteUnavailableReason as Af,RfqConfirmationDecision as Bf,RfqDirection as Cf,RfqExecutionStatus as Df,RfqKnownErrorCode as Ef,RfqRejectionCode as Ff,RfqRequestedSizeUnit as Gf,RfqSide as Hf,RfqStatus as If,CollateralReturnKnownOperationKind as fc,ComboAcceptFailureReason as zf}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 Lg from'it-merge';function l(e,r){let t=r.safeParse(e);if(t.success)return t.data;throw a.fromZodError(t.error)}var w=z.number().int().positive(),Fo=z.object({offset:z.number().int().min(0),pageSize:w});function x(e,r,t=[]){function o(){return {async firstPage(){return {items:t,hasMore:false}},from(){return o()},async*[Symbol.asyncIterator](){}}}function n(s=r){return {firstPage(){return unwrap(e(s))},from(a){return a===void 0?o():n(a)},async*[Symbol.asyncIterator](){let a=s;for(;;){let f=await unwrap(e(a));if(yield f,!f.hasMore)return;a=f.nextCursor;}}}}return n()}function j(e){return toPaginationCursor(btoa(JSON.stringify(Fo.parse(e))))}function W(e,r){if(e===void 0)return {offset:0,pageSize:r};try{return Fo.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=>cp(t.url,e,o))}}function Uo(e){return ResultAsync.fromPromise(e.blob(),()=>new b(`Received unreadable binary response from ${e.url}`))}function cp(e,r,t){let o=r.safeParse(t);return o.success?ok(o.data):err(b.fromZodError(o.error,{endpoint:e}))}var zo=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 f(`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(!$o(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=_o(r.gasPrice)),r.value!==void 0&&(t.value=_o(r.value));let o=await this.#o({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[t]});if("error"in o)throw new f(`JSON-RPC eth_estimateGas failed: ${o.error.message}`,{cause:o.error,status:200});return BigInt(Wo(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 f)||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.#n(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 f(`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,f$1=o.get(a);if(f$1===void 0)throw new b("Expected JSON-RPC batch response for every request");if("error"in f$1)throw new f(`JSON-RPC eth_call failed: ${f$1.error.message}`,{cause:f$1.error,status:200});return Wo(f$1.result)})}async#o(r){let t;try{t=await Do.post(this.#e,{json:r,throwHttpErrors:!1});}catch(n){throw c.fromError(n)}if(!t.ok)throw new f(`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(!jo(o))throw new b("Unexpected JSON-RPC response shape");return o}async#n(r){let t;try{t=await Do.post(this.#e,{json:r,throwHttpErrors:!1});}catch(n){throw c.fromError(n)}if(!t.ok)throw new f(`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=>jo(n)))throw new b("Unexpected JSON-RPC response shape");return o}};function Ho(e){if(!(e instanceof f)||!No(e.cause))return false;let r=[e.cause.message,dp(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 jo(e){return !Go(e)||e.jsonrpc!=="2.0"?false:"error"in e?No(e.error):"result"in e}function No(e){return Go(e)&&typeof e.code=="number"&&typeof e.message=="string"}function Go(e){return typeof e=="object"&&e!==null}function $o(e){return /^0x[a-fA-F0-9]*$/.test(e)}function Wo(e,r="eth_call"){if(typeof e!="string"||!$o(e))throw new b(`Expected JSON-RPC ${r} result to be a hex string`);return e}function _o(e){return `0x${e.toString(16)}`}function dp(e){if(e===void 0)return "";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return ""}}function PE(e,r,t){return {signer:r,wallet:t,walletType:vp(e,r,t)}}function me(e){switch(e){case WalletType.EOA:return SignatureType.EOA;case WalletType.POLY_PROXY:return SignatureType.POLY_PROXY;case WalletType.GNOSIS_SAFE:return SignatureType.POLY_GNOSIS_SAFE;case WalletType.DEPOSIT_WALLET:return SignatureType.POLY_1271}}function sr(e){let r=me(e.walletType);return {maker:e.wallet,signatureType:r,signer:r===SignatureType.POLY_1271?e.wallet:e.signer}}var lp="3d3d606380380380913d393d73%s5af4602a57600080fd5b602d8060366000396000f3363d3d373d3d3d363d73%s5af43d82803e903d91602b57fd5bf352e831dd00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000";function mp(e){let r=lp.replace("%s",e.proxyFactory.slice(2).toLowerCase()).replace("%s",e.proxyImplementation.slice(2).toLowerCase());return expectHexString(Hash.keccak256(`0x${r}`))}function fp(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:mp(r),from:r.proxyFactory,salt:Hash.keccak256(AbiParameters.encodePacked(["address"],[e]))}))}function yp(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:r.safeInitCodeHash,from:r.safeFactory,salt:Hash.keccak256(AbiParameters.encode([{name:"address",type:"address"}],[e]))}))}var Pp="0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3",Rp="0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076",gp=0x61003d3d8160233d3973n;function Ko(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:Cp(r.depositWalletImplementation,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}var Ep="0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3",hp="0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c",Sp="0x60195155f3363d3d373d3d363d602036600436635c60da",Tp=0x6100523d8160233d3973n,xp="0x49493a4d";function Vo(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:bp(r.depositWalletBeacon,o),from:r.depositWalletFactory,salt:Hash.keccak256(o)}))}function Cp(e,r){let t=BigInt((r.length-2)/2),o=gp+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(o,{size:10}),Bytes.fromHex(e),Bytes.fromHex("0x6009"),Bytes.fromHex(Rp),Bytes.fromHex(Pp),Bytes.fromHex(r)),{as:"Hex"}))}function bp(e,r){let t=BigInt((r.length-2)/2),o=Tp+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(o,{size:10}),Bytes.fromHex(e),Bytes.fromHex(Sp),Bytes.fromHex(hp),Bytes.fromHex(Ep),Bytes.fromHex(r)),{as:"Hex"}))}async function Ip(e,r){try{let t=await e.ethCall({to:r,data:xp});return qp(t)}catch(t){if(Ho(t))return ZERO_ADDRESS;throw t}}async function kp(e,r){let t=await Ip(e,r);return !isSameEvmAddress(t,ZERO_ADDRESS)}async function Qo(e,r,t){return await kp(e,t.depositWalletFactory)?Vo(r,t):Ko(r,t)}function qp(e){return e.length<66?ZERO_ADDRESS:expectEvmAddress(`0x${e.slice(-40)}`)}function vp(e,r,t){if(isSameEvmAddress(t,r))return WalletType.EOA;let o=e.walletDerivation;if(isSameEvmAddress(t,Vo(r,o)))return WalletType.DEPOSIT_WALLET;if(isSameEvmAddress(t,Ko(r,o)))return WalletType.DEPOSIT_WALLET;if(isSameEvmAddress(t,yp(r,o)))return WalletType.GNOSIS_SAFE;if(isSameEvmAddress(t,fp(r,o)))return WalletType.POLY_PROXY;never(`Wallet ${t} does not match the signer ${r} or any supported deterministic wallet address.`);}function g(e,r){if(Ap(r))return Op(e,r.exceptions);let t=new URLSearchParams;for(let[o,n]of Object.entries(r)){let s=e[o];if(s!==void 0){if(Yo(s)){for(let a of s)t.append(n,_e(a));continue}t.append(n,_e(s));}}return t}function E(e={}){return {format:"snake_case",exceptions:e}}function G(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(_e).join(","));continue}r.append(t,_e(o));}return r}function Ap(e){return "format"in e}function Op(e,r){let t=new URLSearchParams;for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let s=r[o]??wp(o);if(Yo(n)){for(let a of n)t.append(s,_e(a));continue}t.append(s,_e(n));}return t}function Yo(e){return Array.isArray(e)}function wp(e){return e.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`)}function _e(e){return String(e)}var vE=n(g$1,f,m,c,b);async function AE(e){return (await unwrap(e.secureClob.get("/auth/ban-status/closed-only").andThen(y(ClosedOnlyModeSchema)))).closedOnly}var Gp=z.object({tokenId:z.string().optional(),cursor:PaginationCursorSchema.optional(),id:z.string().optional(),market:z.string().optional()}).default({}),OE=n(g$1,f,m,c,b,a);function wE(e,r){let{cursor:t,...o}=l(r,Gp);return x(n=>e.secureClob.get("/data/orders",{params:g({...o,nextCursor:n},E({tokenId:"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)})),t)}var $p=z.object({orderId:z.string()}),LE=n(g$1,f,m,c,b,a);async function ME(e,r){let t=l(r,$p);return unwrap(e.secureClob.get(`/data/order/${t.orderId}`).andThen(y(OpenOrderSchema)))}var Kp={after:z.string().optional(),tokenId:z.string().optional(),before:z.string().optional(),cursor:PaginationCursorSchema.optional(),id:z.string().optional(),makerAddress:z.string().optional(),market:z.string().optional()},Vp=z.object(Kp).default({}),FE=n(g$1,f,m,c,b,a);function Jo(e,r){let{cursor:t,...o}=l(r,Vp);return x(n=>e.secureClob.get("/data/trades",{params:g({...o,nextCursor:n},E({tokenId:"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)})),t)}var BE=n(g$1,f,m,c,b),Qp=z.object({ids:z.array(z.string()).min(1)});async function UE(e){let r=me(e.account.walletType);return unwrap(e.secureClob.get("/notifications",{params:g({signatureType:r},E())}).andThen(y(NotificationsResponseSchema)))}var DE=n(g$1,f,m,c,b,a);async function zE(e,r){let t=l(r,Qp),o=me(e.account.walletType),n=g({ids:t.ids.join(","),signatureType:o},E());await unwrap(e.secureClob.del("/notifications",{params:n}));}var Yp=z.object({assetType:AssetTypeSchema,tokenId:z.string().optional()}),jE=n(g$1,f,m,c,b,a);async function dt(e,r){let t=l(r,Yp),o=me(e.account.walletType);return unwrap(e.secureClob.get("/balance-allowance",{params:g({...t,signatureType:o},E())}).andThen(y(BalanceAllowanceResponseSchema)))}var Zp=z.object({assetType:AssetTypeSchema,tokenId:z.string().optional()}),WE=n(g$1,f,m,c,b,a);async function Xo(e,r){let t=l(r,Zp),o=me(e.account.walletType),n=g({...t,signatureType:o},E());return await unwrap(e.secureClob.get("/balance-allowance/update",{params:n})),dt(e,t)}var Jp=z.object({orderId:z.string()}),_E=n(g$1,f,m,c,b,a);async function HE(e,r){let t=l(r,Jp);return (await unwrap(e.secureClob.get("/order-scoring",{params:g(t,E())}).andThen(y(OrderScoringResponseSchema)))).scoring}var Xp=z.object({orderIds:z.array(z.string())}),NE=n(g$1,f,m,c,b,a);async function GE(e,r){let o=l(r,Xp).orderIds;return unwrap(e.secureClob.post("/orders-scoring",{json:o}).andThen(y(OrdersScoringResponseSchema)))}var en=z.object({cursor:PaginationCursorSchema.optional(),date:z.string()}),$E=n(g$1,f,m,c,b,a);function KE(e,r){let{cursor:t,...o}=l(r,en),n=me(e.account.walletType);return x(s=>e.secureClob.get("/rewards/user",{params:g({...o,nextCursor:s,signatureType:n},E())}).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 VE=n(g$1,f,m,c,b,a);async function QE(e,r){let t=l(r,en),o=me(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/total",{params:g({...t,signatureType:o},E())}).andThen(y(TotalUserEarningsResponseSchema)))}var ec=z.object({cursor:PaginationCursorSchema.optional(),date:z.string(),noCompetition:z.boolean().optional(),orderBy:z.string().optional(),pageSize:w.max(500).default(100),position:z.string().optional()}),YE=n(g$1,f,m,c,b,a);function ZE(e,r){let{cursor:t,...o}=l(r,ec),n=me(e.account.walletType);return x(s=>e.secureClob.get("/rewards/user/markets",{params:g({...o,nextCursor:s,signatureType:n},E())}).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 JE=n(g$1,f,m,c,b);async function XE(e){let r=me(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/percentages",{params:g({signatureType:r},E())}).andThen(y(RewardsPercentagesSchema)))}var sc=z.enum(["CASH","TOKENS"]),ac=z.object({cursor:PaginationCursorSchema.optional(),pageSize:w.max(1e4).default(20),takerOnly:z.boolean().optional(),filterType:sc.optional(),filterAmount:z.number().optional(),market:z.array(z.string()).optional(),eventId:z.array(z.number().int()).optional(),user:z.string().optional(),side:SideSchema.optional(),start:z.number().int().min(0).optional(),end:z.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"]}),ch=n(g$1,f,c,b,a);function dh(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,ac);return x(s=>{let a=W(s,o);return e.data.get("/trades",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListTradesResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var ic=z.enum(["TIMESTAMP","TOKENS","CASH"]),pc=z.enum(["ASC","DESC"]),cc=z.object({cursor:PaginationCursorSchema.optional(),pageSize:w.max(500).default(20),user:z.string(),market:z.array(z.string()).optional(),eventId:z.array(z.number().int()).optional(),type:z.array(ActivityTypeSchema).optional(),start:z.number().int().min(0).optional(),end:z.number().int().min(0).optional(),sortBy:ic.optional(),sortDirection:pc.optional(),side:SideSchema.optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),uh=n(g$1,f,c,b,a);function lh(e,r){let{cursor:t,pageSize:o,...n}=l(r,cc);return x(s=>{let a=W(s,o);return e.data.get("/activity",{params:G({...n,excludeDepositsWithdrawals:false,limit:a.pageSize,offset:a.offset})}).andThen(y(ListActivityResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var dc=z.union([ComboConditionIdSchema,z.array(ComboConditionIdSchema)]),uc=z.object({cursor:PaginationCursorSchema.optional(),pageSize:w.default(50),user:z.string(),conditionId:dc.optional()}),mh=n(g$1,f,c,b,a);function fh(e,r){let{cursor:t,pageSize:o,conditionId:n,...s}=l(r,uc);return x(a=>{let f=g({...s,limit:o,cursor:a},E());return lc(f,n),e.data.get("/v1/activity/combos",{params:f}).andThen(y(ListComboActivityResponseSchema)).map(P=>{let C=P.pagination.nextCursor??void 0;return {items:P.activity,hasMore:C!==void 0,nextCursor:C}})},t)}function lc(e,r){r!==void 0&&e.append("market_id",Array.isArray(r)?r.join(","):r);}var fc=64,yc=/^0x[0-9a-fA-F]{62}$/,Pc=/^0x[0-9a-fA-F]{64}$/,lt="0x0000000000000000000000000000000000000000000000000000000000000000",Rc=AbiFunction.from("function approve(address spender, uint256 amount)"),nn=AbiFunction.from("function allowance(address owner, address spender) view returns (uint256)"),gc=AbiFunction.from("function transfer(address recipient, uint256 amount)"),Ec=AbiFunction.from("function deposit(address token, uint256 amount, address to)"),hc=AbiFunction.from("function setApprovalForAll(address operator, bool approved)"),sn=AbiFunction.from("function isApprovedForAll(address account, address operator) view returns (bool)"),an=AbiFunction.from("function balanceOf(address account, uint256 id) view returns (uint256)"),pn=AbiFunction.from("function balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])"),Sc=AbiFunction.from("function splitPosition(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),Tc=AbiFunction.from("function mergePositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),xc=AbiFunction.from("function redeemPositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] indexSets)"),Cc=AbiFunction.from("function split(bytes31 conditionId, uint256 amount)"),bc=AbiFunction.from("function merge(bytes31 conditionId, uint256 amount)"),Ic=AbiFunction.from("function redeem(bytes31 conditionId, uint256 outcomeIndex, uint256 amount)"),kc=AbiFunction.from("function prepareCondition(uint256[] legs) returns (bytes31)"),qc=AbiFunction.from("function multiSend(bytes)"),vc=AbiFunction.from("function proxy((uint8 typeCode, address to, uint256 value, bytes data)[] calls) returns (bytes[])"),cn=[1n,2n],Ac=[1n,2n],re=(1n<<256n)-1n,Sh=n(a);function Cr(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:Oc(r,t),to:e}}function dn(e,r,t){return {data:AbiFunction.encodeData(nn,[r,t]),to:e}}function un(e){return AbiFunction.decodeResult(nn,e)}function br(e,r,t){return {data:wc(r,t),to:e}}function ln(e,r,t){return {data:AbiFunction.encodeData(sn,[r,t]),to:e}}function mn(e){return AbiFunction.decodeResult(sn,e)}function fn(e,r,t){return {data:AbiFunction.encodeData(an,[r,he(BigInt(t),"Position ID")]),to:e}}function yn(e){return AbiFunction.decodeResult(an,e)}function mt(e,r,t){return {data:AbiFunction.encodeData(pn,[t.map(()=>r),t.map(o=>he(BigInt(o),"id"))]),to:e}}function ft(e){return AbiFunction.decodeResult(pn,e)}var Th=n(a);function yt(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:Lc(r,t),to:e}}var xh=n(a);function Pn(e,r,t,o){if(t<=0n)throw new a("Perps deposit amount must be positive");return {data:AbiFunction.encodeData(Ec,[r,he(t,"Perps deposit amount"),o]),to:e}}var Ch=n(a),bh=n(a);function Rn(e,r,t,o){return {data:Mc(r,t,o),to:e}}var Ih=n(a);function gn(e,r,t,o){return {data:Fc(r,t,o),to:e}}function En(e,r,t){return {data:Bc(r,t),to:e}}var kh=n(a);function hn(e,r,t){return {data:AbiFunction.encodeData(Cc,[Rt(r),he(t,"Split amount")]),to:e}}var qh=n(a);function Sn(e,r,t){return {data:AbiFunction.encodeData(bc,[Rt(r),he(t,"Merge amount")]),to:e}}var vh=n(a);function Tn(e,r,t,o){return {data:AbiFunction.encodeData(Ic,[Rt(r),BigInt(Uc(t)),he(o,"Redeem amount")]),to:e}}var Ah=n(a);function Pt(e,r){return {data:AbiFunction.encodeData(kc,[r.map(t=>he(t,"Leg position ID"))]),to:e}}function Oc(e,r){return invariant(r>=0n,"Approval amount must be non-negative"),AbiFunction.encodeData(Rc,[e,r])}function wc(e,r){return AbiFunction.encodeData(hc,[e,r])}function Lc(e,r){return AbiFunction.encodeData(gc,[e,r])}function Mc(e,r,t){return AbiFunction.encodeData(Sc,[e,lt,r,cn,he(t,"Split amount")])}function Fc(e,r,t){return AbiFunction.encodeData(Tc,[e,lt,r,cn,he(t,"Merge amount")])}function Bc(e,r){return AbiFunction.encodeData(xc,[e,lt,r,Ac])}function he(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 Rt(e){if(yc.test(e))return e.toLowerCase();if(Pc.test(e)){let r=e.toLowerCase();if(r.endsWith("00")||r.endsWith("01"))return r.slice(0,fc)}throw new a("Protocol v2 condition ID must be bytes31, or bytes32 with a binary outcome byte")}function Uc(e){if(e!==0&&e!==1)throw new a("Protocol v2 outcome index must be 0 or 1");return e}function xn(e){return AbiFunction.encodeData(vc,[e.map(r=>({typeCode:1,to:r.to,value:r.value??0n,data:r.data}))])}function Cn(e){let r=e.map(t=>Dc(t));return AbiFunction.encodeData(qc,[r.length===0?"0x":AbiParameters.encodePacked(Array.from({length:r.length},()=>"bytes"),r)])}function Dc(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 Mh=n(g$1,f,h,i,c,b,a);function $(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}n(j$1,m);n(j$1,m);function zh(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 H(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 bn(){return {kind:"requestAddress"}}function K(e,r){return {chainId:e,...r}}var Zc=[{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Jc=[{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"}],Xc="DepositWallet",ed="1",rd=600,td=[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],od=[{name:"wallet",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"calls",type:"Call[]"}],nd=z.object({address:z.string(),type:z.enum(RelayerTransactionType)}),eS=n(g$1,f,c,b,a);async function ht(e,r){let t=l(r,nd);return unwrap(e.relayer.get("/v1/account/transactions/params",{params:g(t,{address:"address",type:"type"})}).andThen(y(RelayerExecuteParamsSchema)))}var sd=z.object({transactionId:TransactionIdSchema}),ad=z.object({wallet:EvmAddressSchema,type:z.enum(WalletType)}),rS=n(g$1,f,c,b,a);async function tS(e,r){let t=await id(e,r);return t.type===WalletType.EOA?false:unwrap(e.relayer.get("/deployed",{params:g({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 id(e,r){if(r!==void 0)return l(r,ad);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 Qo(e.rpc,e.account.signer,e.environment.walletDerivation),type:WalletType.DEPOSIT_WALLET}}var V=z.string().max(500),In=10,oS=n(g$1,f,c,b,a);async function nS(e){return invariant(e.supportsGasless,"Deposit Wallet deployment requires a Relayer API Key or Builder API Key in the client configuration."),ar(e,{from:e.account.signer,metadata:"Deploy Deposit Wallet",to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET_CREATE})}async function pd(e,r){let t=l(r,sd);return unwrap(e.relayer.get(`/v1/account/transactions/${t.transactionId}`).andThen(y(GaslessTransactionSchema)))}var cd=z.object({data:z.custom(isHexString),to:EvmAddressSchema,value:z.bigint().optional()}),dd=z.object({calls:z.array(cd).min(1).transform(e=>expectNonEmptyArray(e)),metadata:V}),sS=n(g$1,f,c,b,a);async function X(e,r){let t=l(r,dd);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 bn());invariant(o===e.account.signer,"Wallet client address does not match the authenticated signer");for(let n=0;n<=In;n+=1)try{switch(e.account.walletType){case WalletType.POLY_PROXY:return yield*ud(e,t);case WalletType.DEPOSIT_WALLET:return yield*ld(e,t);case WalletType.GNOSIS_SAFE:return yield*md(e,t)}invariant(!1,"Unsupported wallet type for gasless transaction");}catch(s){if(!It(s)||n===In)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected gasless transaction retry loop to return");}.call(null)}async function*ud(e,r){let t=yield*St(e,r.calls,r.metadata);return ar(e,t)}async function*St(e,r,t){let o=await ht(e,{address:e.account.signer,type:RelayerTransactionType.PROXY}),n=e.environment.walletDerivation.proxyFactory,s=xn(r),a="0",f="0",P=(await e.rpc.ethEstimateGas({data:s,from:e.account.signer,to:n})).toString(),C=e.environment.contracts.relayHub,b=o.address,_=Rd(e.account.signer,n,s,a,f,P,o.nonce,C,b),B=expectEvmSignature(yield On(_));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:f,relay:b,relayHub:C,relayerFee:a},to:n,type:RelayerTransactionType.PROXY}}function Tt(e){return !(e instanceof f)||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*ld(e,r){let t=yield*xt(e,r.calls,r.metadata);try{return await ar(e,t)}catch(o){let n=Tt(o);if(n===void 0)throw o;let s=yield*Ct(e,t,r.calls,n);return ar(e,s)}}async function*xt(e,r,t){let o=await ht(e,{address:e.account.signer,type:RelayerTransactionType.WALLET}),n=r.map(vn),s=`${Math.floor(Date.now()/1e3)+rd}`,a=expectEvmSignature(yield wn(An({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*Ct(e,r,t,o){let n=expectEvmSignature(yield wn(An({calls:t.map(vn),chainId:e.environment.chainId,deadline:r.depositWalletParams.deadline,nonce:o,wallet:e.account.wallet})));return {...r,nonce:o,signature:n}}async function*md(e,r){let t=yield*bt(e,r.calls,r.metadata);return ar(e,t)}async function*bt(e,r,t){let o=await ht(e,{address:e.account.signer,type:RelayerTransactionType.SAFE}),n=fd(r,e.environment.contracts.safeMultisend),s=Pd({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 On(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:gd(a),signatureParams:yd(n.operation),to:n.to,type:RelayerTransactionType.SAFE,value:n.value>0n?`${n.value}`:void 0}}async function ar(e,r){let t=l(r,RelayerExecuteRequestSchema),o=await unwrap(e.relayer.post("/submit",{json:t}).andThen(y(RelayerExecuteResponseSchema)));return new ir(e,o)}function It(e){if(e instanceof g$1)return true;if(!(e instanceof f)||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 vn(e){return {data:e.data,target:e.to,value:`${e.value??0n}`}}function An(e){return {domain:{chainId:e.chainId,name:Xc,verifyingContract:e.wallet,version:ed},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:od,Call:td}}}function fd(e,r){if(e.length===1){let[t]=e;return {data:t.data,operation:0,to:t.to,value:t.value??0n}}return {data:Cn(e),operation:1,to:r,value:0n}}function yd(e){return {baseGas:"0",gasPrice:"0",gasToken:ZERO_ADDRESS,operation:`${e}`,refundReceiver:ZERO_ADDRESS,safeTxnGas:"0"}}function Pd(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:Zc,SafeTx:Jc}}}function On(e){return {kind:"signGaslessMessage",payload:e}}function wn(e){return {kind:"signGaslessTypedData",payload:e}}function Rd(e,r,t,o,n,s,a,f,P){return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromString("rlx:"),Bytes.fromHex(e),Bytes.fromHex(r),Bytes.fromHex(t),Bytes.fromNumber(BigInt(o),{size:32}),Bytes.fromNumber(BigInt(n),{size:32}),Bytes.fromNumber(BigInt(s),{size:32}),Bytes.fromNumber(BigInt(a),{size:32}),Bytes.fromHex(f),Bytes.fromHex(P)),{as:"Hex"}))}function gd(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 aS=n(g$1,f,c,b,a,h,i),ir=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 pd(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 i(t.errorMsg??`Transaction ${t.transactionId} reached terminal state ${t.state}`);r+=1,await delay(this.#e.environment.relayerPollFrequencyMs);}throw new h(`Timed out waiting for transaction ${this.transactionId} to settle`)}};var Ed=z.object({amount:z.union([z.bigint(),z.literal("max")]),metadata:V.optional(),spenderAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),RS=n(a);async function hd(e,r){let t=l(r,Ed),o=t.amount==="max"?re:t.amount;return async function*(){return e.account.walletType===WalletType.EOA?$(yield Fn(K(e.environment.chainId,Cr(t.tokenAddress,t.spenderAddress,o)))):yield*await X(e,{calls:[Cr(t.tokenAddress,t.spenderAddress,o)],metadata:t.metadata??`Approve ${t.amount} of ${t.tokenAddress} to ${t.spenderAddress}`})}.call(null)}var gS=n(j$1,g$1,f,m,c,b,a);function Ln(e,r){return hd(e,r).then(H(e.signer))}var Sd=z.object({approved:z.boolean().default(true),metadata:V.optional(),operatorAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),ES=n(a);async function Td(e,r){let t=l(r,Sd);return async function*(){return e.account.walletType===WalletType.EOA?$(yield Bn(K(e.environment.chainId,br(t.tokenAddress,t.operatorAddress,t.approved)))):yield*await X(e,{calls:[br(t.tokenAddress,t.operatorAddress,t.approved)],metadata:t.metadata??`${t.approved?"Approve":"Revoke"} ${t.operatorAddress} on ${t.tokenAddress}`})}.call(null)}var hS=n(j$1,g$1,f,m,c,b,a);function Mn(e,r){return Td(e,r).then(H(e.signer))}var SS=n(f,c,b,a);async function xd(e){let r=await Cd(e),t=r.erc20.map(n=>Cr(n.tokenAddress,n.spenderAddress,n.amount)),o=r.erc1155.map(n=>br(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 $(yield Fn(K(e.environment.chainId,s))).wait();for(let s of o)await $(yield Bn(K(e.environment.chainId,s))).wait();return}await(yield*await X(e,{calls:[...t,...o],metadata:"Trading setup approvals"})).wait();}.call(null)}var TS=n(j$1,g$1,f,m,h,i,c,b,a);function xS(e){return xd(e).then(H(e.signer)).then(()=>{})}async function Cd(e){let r=bd(e),t=[...r.erc20.map(a=>dn(a.tokenAddress,e.account.wallet,a.spenderAddress)),...r.erc1155.map(a=>ln(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,f)=>un(n[f])<a.amount),erc1155:r.erc1155.filter((a,f)=>!mn(s[f]))}}function bd(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.protocolV2Router,tokenAddress:r.positionManager},{operatorAddress:r.exchangeV3,tokenAddress:r.positionManager},{operatorAddress:r.autoRedeemOperator,tokenAddress:r.positionManager}]}}function Fn(e){return {kind:"sendErc20ApprovalTransaction",request:e}}function Bn(e){return {kind:"sendErc1155ApprovalForAllTransaction",request:e}}var AS=n(g$1,f,c,b);async function vd(e,r){return unwrap(e.clob.post("/auth/api-key",{headers:zn(r)}).andThen(y(ApiKeyCredsSchema)))}var OS=n(g$1,f,c,b);async function Ad(e,r){return unwrap(e.clob.get("/auth/derive-api-key",{headers:zn(r)}).andThen(y(ApiKeyCredsSchema)))}var wS=n(g$1,f,c,b);async function LS(e,r){try{return await vd(e,r)}catch(t){if(!(t instanceof f)||t.status!==400)throw t}return Ad(e,r)}var MS=n(g$1,f,m,c,b);async function FS(e){return (await unwrap(e.secureClob.get("/auth/api-keys").andThen(y(ApiKeysResponseSchema)))).apiKeys}var BS=n(g$1,f,m,c,b);async function US(e){await unwrap(e.secureClob.del("/auth/api-key").andThen(y(z.literal("OK"))));}var DS=n(g$1,f,m,c,b);async function zS(e){return unwrap(e.secureClob.post("/auth/builder-api-key").andThen(y(BuilderApiKeyCredsSchema)))}var jS=n(g$1,f,m,c,b);async function WS(e){return unwrap(e.secureClob.get("/auth/builder-api-key").andThen(y(BuilderApiKeysResponseSchema)))}var _S=n(g$1,f,m,c,b);async function HS(e){await unwrap(e.clob.del("/auth/builder-api-key").andThen(y(z.literal("OK"))));}function zn(e){return {POLY_ADDRESS:e.address,POLY_NONCE:`${e.nonce}`,POLY_SIGNATURE:e.signature,POLY_TIMESTAMP:`${e.timestamp}`}}var Fd=z.object({after:z.string().optional(),before:z.string().optional(),builderCode:BuilderCodeSchema,cursor:PaginationCursorSchema.optional(),id:z.string().optional(),market:z.string().optional(),tokenId:z.string().optional()}),XS=n(g$1,f,c,b,a);function eT(e,r){let{cursor:t,...o}=l(r,Fd);return x(n=>e.clob.get("/builder/trades",{params:g({...o,nextCursor:n},E({builderCode:"builder_code",tokenId:"asset_id"}))}).andThen(y(PaginatedBuilderTradesSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),t)}var ou=z.object({tokenId:z.string()}),uT=n(g$1,f,c,b,a);async function lT(e,r){let t=l(r,ou);return (await unwrap(e.clob.get("/midpoint",{params:g(t,E())}).andThen(y(MidpointSchema)))).mid}var nu=z.array(z.object({tokenId:z.string()})).min(1),mT=n(g$1,f,c,b,a);async function fT(e,r){let t=l(r,nu);return unwrap(e.clob.post("midpoints",{json:wr(t)}).andThen(y(MidpointsSchema)))}var su=z.object({tokenId:z.string()}),yT=n(g$1,f,c,b,a);async function PT(e,r){let t=l(r,su);return (await unwrap(e.clob.get("/tick-size",{params:g(t,E())}).andThen(y(FetchTickSizeResponseSchema)))).minimumTickSize}var au=z.object({tokenId:z.string()}),RT=n(g$1,f,c,b,a);async function gT(e,r){let t=l(r,au);return (await unwrap(e.clob.get("/neg-risk",{params:g(t,E())}).andThen(y(FetchNegRiskResponseSchema)))).negRisk}var iu=z.object({tokenId:TokenIdSchema}),ET=n(g$1,f,c,b,a);async function Gn(e,r){let t=l(r,iu);return unwrap(e.clob.get(`/markets-by-token/${t.tokenId}`).andThen(y(ResolveConditionByTokenResponseSchema)))}var pu=z.object({conditionId:ConditionIdSchema}),hT=n(g$1,f,c,b,a);async function $n(e,r){let t=l(r,pu);return unwrap(e.clob.get(`/clob-markets/${t.conditionId}`).andThen(y(FetchMarketInfoResponseSchema)))}var cu=z.object({builderCode:BuilderCodeSchema}),ST=n(g$1,f,c,b,a);async function Kn(e,r){let t=l(r,cu);return unwrap(e.clob.get(`/fees/builder-fees/${t.builderCode}`).andThen(y(FetchBuilderFeeRatesResponseSchema)).mapErr(o=>o instanceof f&&o.status===404?new a(`Unknown builder code: ${t.builderCode}`,{cause:o}):o))}var du=z.object({tokenId:z.string(),side:OrderSideSchema}),TT=n(g$1,f,c,b,a);async function xT(e,r){let t=l(r,du);return (await unwrap(e.clob.get("/price",{params:g(t,E())}).andThen(y(PriceSchema)))).price}var uu=z.array(z.object({tokenId:z.string(),side:OrderSideSchema})).min(1),CT=n(g$1,f,c,b,a);async function bT(e,r){let t=l(r,uu);return unwrap(e.clob.post("prices",{json:Su(t)}).andThen(y(PricesSchema)))}var lu=z.object({tokenId:z.string()}),IT=n(g$1,f,c,b,a);async function Or(e,r){let t=l(r,lu);return unwrap(e.clob.get("/book",{params:g(t,E())}).andThen(y(FetchOrderBookResponseSchema)))}var mu=z.array(z.object({tokenId:z.string()})).min(1),kT=n(g$1,f,c,b,a);async function qT(e,r){let t=l(r,mu);return unwrap(e.clob.post("books",{json:wr(t)}).andThen(y(OrderBooksSchema)))}var fu=z.object({tokenId:z.string()}),vT=n(g$1,f,c,b,a);async function AT(e,r){let t=l(r,fu);return (await unwrap(e.clob.get("/spread",{params:g(t,E())}).andThen(y(SpreadSchema)))).spread}var yu=z.array(z.object({tokenId:z.string()})).min(1),OT=n(g$1,f,c,b,a);async function wT(e,r){let t=l(r,yu);return unwrap(e.clob.post("spreads",{json:wr(t)}).andThen(y(SpreadsSchema)))}var Pu=z.object({tokenId:z.string()}),LT=n(g$1,f,c,b,a);async function MT(e,r){let t=l(r,Pu);return unwrap(e.clob.get("/last-trade-price",{params:g(t,E())}).andThen(y(LastTradePriceSchema)))}var Ru=z.array(z.object({tokenId:z.string()})).min(1),FT=n(g$1,f,c,b,a);async function BT(e,r){let t=l(r,Ru);return unwrap(e.clob.post("last-trades-prices",{json:wr(t)}).andThen(y(LastTradePricesSchema)))}var gu=z.object({tokenId:z.string(),startTs:z.number().int().optional(),endTs:z.number().int().optional(),fidelity:z.number().int().positive().optional(),interval:PriceHistoryIntervalSchema.optional()}),UT=n(g$1,f,c,b,a);async function DT(e,r){let t=l(r,gu);return (await unwrap(e.clob.get("/prices-history",{params:g(t,{tokenId:"market",startTs:"startTs",endTs:"endTs",fidelity:"fidelity",interval:"interval"})}).andThen(y(PriceHistorySchema)))).history}var Eu=z.object({cursor:PaginationCursorSchema.optional(),sponsored:z.boolean().optional()}).default({}),zT=n(g$1,f,c,b,a);function jT(e,r={}){let{cursor:t,...o}=l(r,Eu);return x(n=>e.clob.get("/rewards/markets/current",{params:g({...o,nextCursor:n},E())}).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 hu=z.object({conditionId:ConditionIdSchema,cursor:PaginationCursorSchema.optional(),sponsored:z.boolean().optional()}),WT=n(g$1,f,c,b,a);function _T(e,r){let{cursor:t,...o}=l(r,hu);return x(n=>e.clob.get(`rewards/markets/${o.conditionId}`,{params:g({nextCursor:n,sponsored:o.sponsored},E())}).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 wr(e){return e.map(({tokenId:r})=>({token_id:r}))}function Su(e){return e.map(({tokenId:r,side:t})=>({token_id:r,side:t}))}var Zn=2*6e4,ex=n(g$1,f,c,b);async function rx(e){return Jn(e),unwrap(e.combos.post("/v1/collateral-return/plan",{json:{wallet:e.account.wallet},timeout:Zn}).andThen(y(CollateralReturnPlanResponseSchema)))}var vu=z.object({plan:CollateralReturnPlanSchema}),Vn=10,qt="Collateral return",tx=n(f,c,b,a);async function Au(e,r){let{plan:t}=l(r,vu);if(invariant(e.supportsGasless,"Collateral return execution requires a Relayer API Key or Builder API Key in the client configuration."),Jn(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<=Vn;n+=1)try{let s=yield*Ou(e,o);try{return await Qn(e,t.planHash,s)}catch(a){let f=Tt(a);if(f===void 0||s.type!==RelayerTransactionType.WALLET)throw a;let P=yield*Ct(e,s,o,f);return await Qn(e,t.planHash,P)}}catch(s){if(!It(s)||n===Vn)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected collateral return submit retry loop to return");}.call(null)}var ox=n(j$1,g$1,f,m,c,b,a);function nx(e,r){return Au(e,r).then(H(e.signer))}function Jn(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 Ou(e,r){switch(e.account.walletType){case WalletType.GNOSIS_SAFE:return bt(e,r,qt);case WalletType.POLY_PROXY:return St(e,r,qt);default:return xt(e,r,qt)}}async function Qn(e,r,t){let o=await unwrap(e.combos.post("/v1/collateral-return/submit",{json:{envelope:t,plan_hash:r},timeout:Zn}).andThen(y(RelayerExecuteResponseSchema)));return new ir(e,o)}var Uu=z.object({ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:w.max(100).default(20),getPositions:z.boolean().optional(),holdersOnly:z.boolean().optional(),order:z.string().optional(),parentEntityId:z.union([EventIdSchema,SeriesIdSchema]),parentEntityType:CommentParentEntityTypeSchema}),Du=z.object({getPositions:z.boolean().optional(),id:CommentIdSchema}),zu=z.object({address:z.string(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),order:z.string().optional(),pageSize:w.max(100).default(20)}),Rx=n(g$1,f,c,b,a);function gx(e,r){let{cursor:t,pageSize:o,...n}=l(r,Uu);return x(s=>{let a=W(s,o);return e.gamma.get("/comments",{params:g({ascending:n.ascending,getPositions:n.getPositions,holdersOnly:n.holdersOnly,limit:a.pageSize,offset:a.offset,order:n.order,parentEntityId:n.parentEntityId,parentEntityType:n.parentEntityType},E())}).andThen(y(ListCommentsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var Ex=n(g$1,f,c,b,a);async function hx(e,r){let t=l(r,Du);return unwrap(e.gamma.get(`comments/${t.id}`,{params:g({getPositions:t.getPositions},E())}).andThen(y(ListCommentsResponseSchema)))}var Sx=n(g$1,f,c,b,a);function Tx(e,r){let{address:t,cursor:o,pageSize:n,...s}=l(r,zu);return x(a=>{let f=W(a,n);return e.gamma.get(`comments/user_address/${t}`,{params:g({ascending:s.ascending,limit:f.pageSize,offset:f.offset,order:s.order},E())}).andThen(y(ListCommentsResponseSchema)).map(P=>{let C=P.length>=f.pageSize;return {items:P,hasMore:C,nextCursor:C?j({offset:f.offset+f.pageSize,pageSize:f.pageSize}):void 0}})},o)}function Lr(e,r){let t;try{t=new URL(e);}catch(f){throw new a("Expected a valid Polymarket URL.",{cause:f})}if(t.protocol!=="https:"||t.hostname!=="polymarket.com"&&t.hostname!=="www.polymarket.com")throw new a("Expected a valid Polymarket URL.");let[o,n,...s]=t.pathname.split("/").filter(Boolean),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 Gu=z.object({ascending:z.boolean().optional(),closed:z.boolean().default(false),cursor:PaginationCursorSchema.optional(),pageSize:w.optional(),cyom:z.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),ended:z.boolean().optional(),eventDate:IsoCalendarDateStringSchema.optional(),eventWeek:z.number().int().optional(),excludeTagIds:z.array(z.number().int()).optional(),featured:z.boolean().optional(),featuredOrder:z.boolean().optional(),gameIds:z.array(z.number().int()).optional(),ids:z.array(z.number().int()).optional(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeChildren:z.boolean().optional(),includeTemplate:z.boolean().optional(),liquidityMax:z.number().optional(),liquidityMin:z.number().optional(),live:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),parentEventId:z.number().int().optional(),partnerSlug:z.string().optional(),recurrence:z.enum(["daily","weekly","monthly"]).optional(),relatedTags:z.boolean().optional(),seriesIds:z.array(z.number().int()).optional(),slug:z.array(z.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),startTimeMax:IsoDateTimeStringSchema.optional(),startTimeMin:IsoDateTimeStringSchema.optional(),tagIds:z.array(z.number().int()).optional(),tagMatch:z.enum(["any","all"]).optional(),tagSlug:z.string().optional(),titleSearch:z.string().optional(),volumeMax:z.number().optional(),volumeMin:z.number().optional()}),$u=z.union([z.object({id:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({slug:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({url:z.string(),includeBestLines:z.boolean().optional(),includeChat:z.boolean().optional(),includeTemplate:z.boolean().optional(),locale:z.string().optional()})]),Ku=z.object({id:z.string()}),Vu=z.object({id:z.string()}),Ux=n(g$1,f,c,b,a);function Dx(e,r={}){let t=l(r,Gu);return x(o=>e.gamma.get("/events/keyset",{params:Qu({...t,cursor:o??t.cursor})}).andThen(y(ListEventsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var zx=n(g$1,f,c,b,a);async function jx(e,r){let t=l(r,$u);if("id"in t)return unwrap(e.gamma.get(`events/${t.id}`,{params:Yu(t)}).andThen(y(EventSchema)));let o="url"in t?Lr(t.url,"event"):t.slug;return unwrap(e.gamma.get(`events/slug/${o}`,{params:Zu(t)}).andThen(y(EventSchema)))}var Wx=n(g$1,f,c,b,a);async function _x(e,r){let t=l(r,Ku);return unwrap(e.gamma.get(`events/${t.id}/tags`).andThen(y(FetchEventTagsResponseSchema)))}var Hx=n(g$1,f,c,b,a);async function Nx(e,r){let t=l(r,Vu);return unwrap(e.data.get("/live-volume",{params:G(t)}).andThen(y(FetchEventLiveVolumeResponseSchema)))}function Qu(e){return g(e,E({cursor:"after_cursor",excludeTagIds:"exclude_tag_id",gameIds:"game_id",ids:"id",pageSize:"limit",seriesIds:"series_id",tagIds:"tag_id"}))}function Yu(e){return g({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},E())}function Zu(e){return g({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},E())}var nl=z.object({cursor:PaginationCursorSchema.optional(),pageSize:w.max(50).default(20),timePeriod:TimePeriodSchema.optional()}),sl=z.object({timePeriod:TimePeriodSchema.optional()}),al=z.object({category:LeaderboardCategorySchema.optional(),cursor:PaginationCursorSchema.optional(),pageSize:w.max(50).default(20),timePeriod:TimePeriodSchema.optional(),orderBy:LeaderboardOrderBySchema.optional(),user:z.string().optional(),userName:z.string().optional()}),rC=n(g$1,f,c,b,a);function tC(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,nl);return x(s=>{let a=W(s,o);return e.data.get("/v1/builders/leaderboard",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListBuilderLeaderboardResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var oC=n(g$1,f,c,b,a);async function nC(e,r={}){let t=l(r,sl);return unwrap(e.data.get("/v1/builders/volume",{params:G(t)}).andThen(y(ListBuilderVolumeResponseSchema)))}var sC=n(g$1,f,c,b,a);function aC(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,al);return x(s=>{let a=W(s,o);return e.data.get("/v1/leaderboard",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListTraderLeaderboardResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var cl=z.object({marketId:z.union([z.string(),z.array(z.string())]).optional(),eventId:z.union([z.string(),z.array(z.string())]).optional(),questionId:z.union([z.string(),z.array(z.string())]).optional(),state:z.union([z.enum(MarketClarificationState),z.array(z.enum(MarketClarificationState))]).optional(),showInFrontend:z.boolean().optional(),txHash:z.string().optional(),order:z.string().optional(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:w.max(100).default(20)}),PC=n(g$1,f,c,b,a);function RC(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,cl);return x(s=>{let a=W(s,o);return e.gamma.get("/market-clarifications",{params:g({...n,limit:a.pageSize,offset:a.offset},E())}).andThen(y(ListMarketClarificationsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var Rl=z.object({ascending:z.boolean().optional(),closed:z.boolean().optional(),clobTokenIds:z.array(z.string()).optional(),cursor:PaginationCursorSchema.optional(),pageSize:w.optional(),conditionIds:z.array(ConditionIdSchema).optional(),cyom:z.boolean().optional(),decimalized:z.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),gameId:z.string().optional(),ids:z.array(z.number().int()).optional(),includeTag:z.boolean().optional(),liquidityNumMax:z.number().optional(),liquidityNumMin:z.number().optional(),locale:z.string().optional(),marketMakerAddresses:z.array(z.string()).optional(),order:z.string().optional(),positionIds:z.array(PositionIdSchema).optional(),questionIds:z.array(z.string()).optional(),relatedTags:z.boolean().optional(),rfqEnabled:z.boolean().optional(),rewardsMinSize:z.number().optional(),slug:z.array(z.string()).optional(),sportsMarketTypes:z.array(z.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),tagId:z.number().int().optional(),tagMatch:z.enum(["any","all"]).optional(),umaResolutionStatus:z.string().optional(),volumeNumMax:z.number().optional(),volumeNumMin:z.number().optional()}),gl=z.object({id:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),El=z.object({slug:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),hl=z.object({url:z.string(),includeTag:z.boolean().optional(),locale:z.string().optional()}),Sl=z.union([gl,El,hl]),Tl=z.object({id:z.string()}),xl=z.object({limit:z.number().int().optional(),market:z.array(z.string()),minBalance:z.number().int().optional()}),Cl=z.object({market:z.array(z.string()).optional()}),bl=z.enum(["OPEN","CLOSED","ALL"]),Il=z.enum(["TOKENS","CASH_PNL","REALIZED_PNL","TOTAL_PNL"]),kl=z.enum(["ASC","DESC"]),ql=z.object({cursor:PaginationCursorSchema.optional(),market:z.string(),pageSize:w.max(500).default(20),user:z.string().optional(),status:bl.optional(),sortBy:Il.optional(),sortDirection:kl.optional()}),OC=n(g$1,f,c,b,a);function as(e,r={}){let t=l(r,Rl);return x(o=>e.gamma.get("/markets/keyset",{params:Al({...t,cursor:o??t.cursor})}).andThen(y(ListMarketsKeysetResponseSchema)).map(n=>({items:n.items,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var vl=z.object({cursor:PaginationCursorSchema.optional(),pageSize:w.max(100).optional(),exclude:z.array(ConditionIdSchema).optional()}),wC=n(g$1,f,c,b,a);function LC(e,r={}){let t=l(r,vl);return x(o=>e.rfq.get("/v1/rfq/combo-markets",{params:Ol({...t,cursor:o??t.cursor})}).andThen(y(ListComboMarketsResponseSchema)).map(n=>({items:n.markets,hasMore:n.nextCursor!==void 0,nextCursor:n.nextCursor})),t.cursor)}var MC=n(g$1,f,c,b,a);async function FC(e,r){let t=l(r,Sl);return "id"in t?wl(e,t):"url"in t?os(e,{includeTag:t.includeTag,locale:t.locale,slug:Lr(t.url,"market")}):os(e,t)}var BC=n(g$1,f,c,b,a);async function UC(e,r){let t=l(r,Tl);return unwrap(e.gamma.get(`markets/${t.id}/tags`).andThen(y(FetchMarketTagsResponseSchema)))}var DC=n(g$1,f,c,b,a);async function zC(e,r){let t=l(r,xl);return unwrap(e.data.get("/holders",{params:G(t)}).andThen(y(ListMarketHoldersResponseSchema)))}var jC=n(g$1,f,c,b,a);async function WC(e,r={}){let t=l(r,Cl);return unwrap(e.data.get("/oi",{params:G(t)}).andThen(y(ListOpenInterestResponseSchema)))}var _C=n(g$1,f,c,b,a);function HC(e,r){let{cursor:t,pageSize:o,...n}=l(r,ql);return x(s=>{let a=W(s,o);return e.data.get("/v1/market-positions",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListMarketPositionsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}function Al(e){return g(e,E({cursor:"after_cursor",ids:"id",marketMakerAddresses:"market_maker_address",pageSize:"limit"}))}function Ol(e){return g({cursor:e.cursor,exclude:e.exclude?.join(","),pageSize:e.pageSize},{cursor:"cursor",exclude:"exclude",pageSize:"limit"})}async function os(e,r){return unwrap(e.gamma.get(`markets/slug/${r.slug}`,{params:g({includeTag:r.includeTag,locale:r.locale},E())}).andThen(y(MarketSchema)))}async function wl(e,r){return unwrap(e.gamma.get(`markets/${r.id}`,{params:g({includeTag:r.includeTag,locale:r.locale},E())}).andThen(y(MarketSchema)))}var Fl=z.object({orderId:z.string()}),Bl=z.object({orderIds:z.array(z.string()).min(1).max(3e3)}),Ul=z.object({tokenId:z.string().optional(),market:z.string().optional()}).refine(e=>e.market!==void 0||e.tokenId!==void 0,{message:"At least one of market or tokenId is required.",path:["market"]}),ZC=n(f,g$1,m,c,b,a);async function JC(e,r){let t=l(r,Fl);return Br(e,"/order",{orderID:t.orderId})}var XC=n(f,g$1,m,c,b,a);async function eb(e,r){let t=l(r,Bl);return Br(e,"/orders",t.orderIds)}var rb=n(f,g$1,m,c,b);async function tb(e){return Br(e,"/cancel-all")}var ob=n(f,g$1,m,c,b,a);async function nb(e,r){let t=l(r,Ul);return Br(e,"/cancel-market-orders",{asset_id:t.tokenId,market:t.market})}async function Br(e,r,t){return unwrap(e.secureClob.del(r,{json:t}).andThen(y(CancelOrdersResponseSchema)))}var ps=z.object({tokenId:z.string(),orderType:z.union([z.literal(OrderType.FAK),z.literal(OrderType.FOK)]).default(OrderType.FOK)}),zl=z.discriminatedUnion("side",[ps.extend({side:z.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema}),ps.extend({side:z.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema})]),lb=n(k,g$1,f,c,b,a);async function mb(e,r){let t=l(r,zl),o=t.side===OrderSide.BUY?t.amount:t.shares;return jl(e,{amount:o,orderType:t.orderType,side:t.side,tokenId:t.tokenId})}async function jl(e,r){let t=await Or(e,{tokenId:r.tokenId});return Lt({amount:r.amount,orderBook:t,orderType:r.orderType,side:r.side})}function Lt(e){let{orderBook:r}=e,t=e.side===OrderSide.BUY?_l(r.asks,e.amount,e.orderType):Hl(r.bids,e.amount,e.orderType);return invariant(Wl(t,r.tickSize),`Resolved market price fell outside the valid range for tick size ${r.tickSize}.`),t}function Wl(e,r){return e>=r&&e<=1-r}function _l(e,r,t){if(e.length===0)throw new k("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 k("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}function Hl(e,r,t){if(e.length===0)throw new k("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 k("Insufficient liquidity for full fill.");let n=e[0];return Number.parseFloat(n.price)}var Kl=z.array(z.custom()).min(1).max(15),Tb=n(g$1,f,m,c,b),xb=n(g$1,f,m,c,b,a);function Dr(e){return async function(t){let o=ls(e,t);return unwrap(e.secureClob.post("/order",{json:o}).andThen(y(OrderResponseSchema)))}}function Cb(e){return async function(t){let n=l(t,Kl).map(s=>ls(e,s));return unwrap(e.secureClob.post("/orders",{json:n}).andThen(y(OrderResponsesSchema)))}}function ls(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.parseInt(r.salt,10),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}:{}}}var Mt=600*1e3,Ft=Number.POSITIVE_INFINITY,Bt=class{#e;#r=new Map;#t=new Map;#o=new Map;constructor(r){this.#e=r;}async resolveMarket(r){let t=await this.#n(r);return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize}}async resolveBuilderTakerFeeRate(r){return r===void 0?0:zr(this.#r,r,Mt,()=>this.#e.fetchBuilderTakerFeeRate(r))}async fetchCurrentMarket(r){let t=await zr(this.#t,r,Ft,()=>this.#e.resolveCondition(r)),o=await this.#s(t);return this.#a(r,t,o),this.#o.set(t,ms(o,Mt)),{feeInfo:o.feeInfo,negRisk:o.negRisk,tickSize:o.tickSize}}async#n(r){let t=await zr(this.#t,r,Ft,()=>this.#e.resolveCondition(r)),o=await zr(this.#o,t,Mt,()=>this.#s(t));return this.#a(r,t,o),o}#a(r,t,o){if(!o.tokenIds.has(r))throw this.#t.delete(r),this.#o.delete(t),new b(`Market ${t} does not include token ${r}.`)}async#s(r){let t=await this.#e.fetchMarket(r),o=new Set(t.tokens.map(({tokenId:n})=>n));for(let n of o)this.#t.set(n,ms(r));return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize,tokenIds:o}}};function zr(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 ms(e,r=Ft){return {expiresAt:Date.now()+r,promise:Promise.resolve(e)}}var fs=new WeakMap;function Me(e,r){return Ut(e).resolveMarket(r)}function lr(e,r){return Ut(e).fetchCurrentMarket(r)}function ys(e,r){return Ut(e).resolveBuilderTakerFeeRate(r)}function Ut(e){let r=fs.get(e);if(r!==void 0)return r;let t=new Bt({fetchBuilderTakerFeeRate:async o=>(await Kn(e,{builderCode:o})).taker,fetchMarket:o=>$n(e,{conditionId:o}),resolveCondition:o=>Gn(e,{tokenId:o})});return fs.set(e,t),t}function ye(e){return BigInt(Math.round(e*10**6))}function Pe(e,r){return Q(e)<=r?e:Math.floor(e*10**r)/10**r}function qe(e,r){return Q(e)<=r?e:Math.ceil(e*10**r)/10**r}function Ps(e,r){return Q(e)<=r?e:Math.round(e*10**r)/10**r}function Rs(e,r){let t=Q(r);if(Q(e)>t)return false;let o=10**t;return Math.round(e*o)%Math.round(r*o)===0}function Q(e){if(typeof e=="number"&&Number.isInteger(e))return 0;let[r="",t]=e.toString().toLowerCase().split("e"),[,o=""]=r.split("."),n=o.length;if(t===void 0)return n;let s=Number.parseInt(t,10);return Math.max(0,n-s)}function jr(e){switch(e){case .1:return {amount:3,price:1,size:2};case .01:return {amount:4,price:2,size:2};case .005:return {amount:5,price:3,size:2};case .0025:return {amount:6,price:4,size:2};case .001:return {amount:5,price:3,size:2};case 1e-4:return {amount:6,price:4,size:2}}invariant(false,`Unsupported tick size: ${e}`);}function Wr(e,r){let t=Q(r);if(e<r||e>1-r)throw new a(`must be between ${r} and ${1-r} for tick size ${r}.`);if(Q(e)>t)throw new a(`must conform to tick size ${r} with at most ${t} decimal places.`);if(!Rs(e,r))throw new a(`${e} must be a multiple of tick size ${r}.`);return e}function ve(e,r){return r?e.environment.contracts.negRiskExchange:e.environment.contracts.standardExchange}var Xl=180,Ss=z.strictObject({tokenId:TokenIdSchema,price:PositiveDecimalNumberSchema,size:PositiveDecimalNumberSchema,side:OrderSideSchema,builderCode:BuilderCodeSchema.optional(),postOnly:z.boolean().default(false),expiration:z.number().int().nonnegative().optional()}).superRefine((e,r)=>{if(e.expiration!==void 0){let t=Math.floor(Date.now()/1e3)+Xl;e.expiration<t&&r.addIssue({code:"custom",message:"Expiration must be at least 3 minutes in the future.",path:["expiration"]});}});async function Ts(e,r){let t=await em(e,{price:r.price,tokenId:r.tokenId}),o=tm({price:t.price,side:r.side,size:r.size,tickSize:t.tickSize});return {builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:r.expiration??0,funderAddress:t.funderAddress,offeredAmount:o.offeredAmount,orderType:r.expiration===void 0?OrderType.GTC:OrderType.GTD,side:r.side,signer:t.signerAddress,requestedAmount:o.requestedAmount,tokenId:r.tokenId}}async function em(e,r){let t=await Me(e,r.tokenId);try{return hs(e,r,t)}catch(o){if(!(o instanceof a))throw o;let n=await lr(e,r.tokenId);return hs(e,r,n)}}function hs(e,r,t){let o=rm(r.price,t.tickSize);return {exchangeAddress:ve(e,t.negRisk),funderAddress:e.account.wallet,price:o,signerAddress:e.account.signer,tickSize:t.tickSize}}function rm(e,r){try{return Wr(e,r)}catch(t){throw t instanceof a?new a(`Price ${t.message}`,{cause:t}):t}}function tm(e){let r=jr(e.tickSize),t=Ps(e.price,r.price);if(e.side===OrderSide.BUY){let s=Pe(e.size,r.size),a=s*t;return Q(a)>r.amount&&(a=qe(a,r.amount+4),Q(a)>r.amount&&(a=Pe(a,r.amount))),{offeredAmount:ye(a),requestedAmount:ye(s)}}let o=Pe(e.size,r.size),n=o*t;return Q(n)>r.amount&&(n=qe(n,r.amount+4),Q(n)>r.amount&&(n=Pe(n,r.amount))),{offeredAmount:ye(o),requestedAmount:ye(n)}}var Cs=z.object({tokenId:TokenIdSchema,builderCode:BuilderCodeSchema.optional(),orderType:z.union([z.literal(OrderType.FAK),z.literal(OrderType.FOK)]).default(OrderType.FAK)}),qs=z.discriminatedUnion("side",[Cs.extend({side:z.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema,maxSpend:PositiveDecimalNumberSchema.optional(),maxPrice:PositiveDecimalNumberSchema.optional()}),Cs.extend({side:z.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema,minPrice:PositiveDecimalNumberSchema.optional()})]);async function vs(e,r){let t=await sm(e,r),o=cm({amount:t.resolvedAmount,price:t.price,protectPrice:Os(r),side:r.side,tickSize:t.tickSize});return {builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:0,funderAddress:t.funderAddress,offeredAmount:o.offeredAmount,orderType:r.orderType,side:r.side,signer:t.signerAddress,requestedAmount:o.requestedAmount,tokenId:r.tokenId}}async function sm(e,r){return Os(r)?am(e,r):im(e,r)}async function am(e,r){let t=r.side===OrderSide.BUY?r.amount:r.shares;if(r.side===OrderSide.BUY&&r.maxSpend!==void 0){let{builderTakerFeeRate:n,market:s}=await ws(e,r.tokenId,r.builderCode);try{return bs(e,r,t,n,r.maxSpend,s)}catch(a$1){if(!(a$1 instanceof a))throw a$1;let f=await lr(e,r.tokenId);return bs(e,r,t,n,r.maxSpend,f)}}let o=await Me(e,r.tokenId);try{return Is(e,r,t,o)}catch(n){if(!(n instanceof a))throw n;let s=await lr(e,r.tokenId);return Is(e,r,t,s)}}function bs(e,r,t,o,n,s){let a=As(r,s.tickSize);return {exchangeAddress:ve(e,s.negRisk),funderAddress:e.account.wallet,price:a,resolvedAmount:Ls({amount:t,builderTakerFeeRate:o,maxSpend:n,platformFeeExponent:s.feeInfo.exponent,platformFeeRate:s.feeInfo.rate,price:a}),signerAddress:e.account.signer,tickSize:s.tickSize}}function Is(e,r,t,o){let n=As(r,o.tickSize);return {exchangeAddress:ve(e,o.negRisk),funderAddress:e.account.wallet,price:n,resolvedAmount:t,signerAddress:e.account.signer,tickSize:o.tickSize}}async function im(e,r){let t=r.side===OrderSide.BUY?r.amount:r.shares,o=r.side===OrderSide.BUY&&r.maxSpend!==void 0?ws(e,r.tokenId,r.builderCode):void 0,[n,s]=await Promise.all([Or(e,{tokenId:r.tokenId}),o]);if(n.tokenId!==r.tokenId)throw new b(`Order book returned token ${n.tokenId} for requested token ${r.tokenId}.`);let a=Lt({amount:t,orderBook:n,orderType:r.orderType,side:r.side});return {exchangeAddress:ve(e,n.negRisk),funderAddress:e.account.wallet,price:a,resolvedAmount:pm(r,t,a,s),signerAddress:e.account.signer,tickSize:n.tickSize}}function pm(e,r,t,o){return e.side!==OrderSide.BUY||e.maxSpend===void 0||o===void 0?r:Ls({amount:r,builderTakerFeeRate:o.builderTakerFeeRate,maxSpend:e.maxSpend,platformFeeExponent:o.market.feeInfo.exponent,platformFeeRate:o.market.feeInfo.rate,price:t})}function As(e,r){return e.side===OrderSide.BUY?(invariant(e.maxPrice!==void 0,"Protected BUY market order requires maxPrice."),ks("maxPrice",e.maxPrice,r)):(invariant(e.minPrice!==void 0,"Protected SELL market order requires minPrice."),ks("minPrice",e.minPrice,r))}function ks(e,r,t){try{return Wr(r,t)}catch(o){throw o instanceof a?new a(`${e} ${o.message}`,{cause:o}):o}}function Os(e){return e.side===OrderSide.BUY&&e.maxPrice!==void 0||e.side===OrderSide.SELL&&e.minPrice!==void 0}function cm(e){let r=jr(e.tickSize),t=Pe(e.price,r.price),o=Pe(e.amount,r.size);if(e.side===OrderSide.BUY){let s=o/t;return Q(s)>r.amount&&(s=qe(s,r.amount+4),Q(s)>r.amount&&(s=e.protectPrice?qe(s,r.amount):Pe(s,r.amount))),{offeredAmount:ye(o),requestedAmount:ye(s)}}let n=o*t;return Q(n)>r.amount&&(n=qe(n,r.amount+4),Q(n)>r.amount&&(n=e.protectPrice?qe(n,r.amount):Pe(n,r.amount))),{offeredAmount:ye(o),requestedAmount:ye(n)}}async function ws(e,r,t){let[o,n]=await Promise.all([Me(e,r),ys(e,t)]);return {builderTakerFeeRate:n,market:o}}function Ls(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 Ms="0x0000000000000000000000000000000000000000000000000000000000000000";function jt(e,r){let t=sr(r);return {builder:e.builderCode??Ms,chainId:e.chainId,exchangeAddress:e.exchangeAddress,expiration:e.expiration,maker:t.maker,makerAmount:e.offeredAmount.toString(),metadata:Ms,orderType:e.orderType,salt:dm().toString(),side:e.side,signatureType:t.signatureType,signer:t.signer,takerAmount:e.requestedAmount.toString(),timestamp:Date.now().toString(),tokenId:e.tokenId}}function Wt(e,r){let{chainId:t,exchangeAddress:o,...n}=e;return {...n,signature:r}}function dm(){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}var Us="Polymarket CTF Exchange",lm="DepositWallet",mm="1",_t="0x0000000000000000000000000000000000000000000000000000000000000000",Ht="Order(uint256 salt,address maker,address signer,uint256 tokenId,uint256 makerAmount,uint256 takerAmount,uint8 side,uint8 signatureType,uint256 timestamp,bytes32 metadata,bytes32 builder)",fm=Hash.keccak256(Bytes.fromString(Ht),{as:"Hex"}),ym=Hash.keccak256(Bytes.fromString("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),{as:"Hex"}),Pm=Hash.keccak256(Bytes.fromString(Us),{as:"Hex"}),Rm=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Ds=[{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"}],gm=[{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 _r(e){let r=Em(e.domain,e.order);return e.order.signatureType!==SignatureType.POLY_1271?r:{domain:_s(e.domain),message:{chainId:e.domain.chainId,contents:r.message,name:lm,salt:_t,verifyingContract:e.order.signer,version:mm},primaryType:"TypedDataSign",types:{Order:Ds,TypedDataSign:gm}}}function Hr(e){if(e.order.signatureType!==SignatureType.POLY_1271)return e.signature;let r=Bytes.toHex(Bytes.fromString(Ht)),t=Ht.length.toString(16).padStart(4,"0");return expectErc1271Signature(`0x${e.signature.slice(2)}${hm(e.domain).slice(2)}${Sm(e.order).slice(2)}${r.slice(2)}${t}`)}function zs(e){return {chainId:e.chainId,exchange:e.exchange,protocolVersion:"3"}}function oI(e,r,t){return e===OrderSide.SELL?t.toString():((r*t+999999n)/1000000n).toString()}function nI(e,r,t){return e===OrderSide.SELL?(r*t/1000000n).toString():t.toString()}function js(){let e=new Uint8Array(8);return globalThis.crypto.getRandomValues(e),BigInt(`0x${Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}`)}function Ws(e){return {builder:e.builder??_t,maker:e.maker,makerAmount:BigInt(e.makerAmount),metadata:e.metadata??_t,salt:BigInt(e.salt),side:$t(e.side),signatureType:e.signatureType,signer:e.signer,takerAmount:BigInt(e.takerAmount),timestamp:BigInt(e.timestamp),tokenId:BigInt(e.tokenId)}}function Em(e,r){return {domain:_s(e),message:Ws(r),primaryType:"Order",types:{EIP712Domain:Rm,Order:Ds}}}function _s(e){return {chainId:e.chainId,name:Us,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"}],[ym,Pm,Tm(e.protocolVersion),BigInt(e.chainId),e.exchange]),{as:"Hex"}))}function Sm(e){let r=Ws(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"}],[fm,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 Tm(e){return expectHexString(Hash.keccak256(Bytes.fromString(e),{as:"Hex"}))}function $t(e){return e===0||e===1?e:e===OrderSide.BUY?0:1}function Kt(e){return _r({domain:Hs(e),order:e})}function Vt(e,r){return Hr({domain:Hs(e),order:e,signature:r})}function Hs(e){return {chainId:e.chainId,exchange:e.exchangeAddress,protocolVersion:"2"}}function Qt(e){return {kind:"signOrder",payload:e}}var xm=n(k,g$1,f,m,c,b,a);async function Yt(e,r){let t=l(r,qs);return async function*(){let o=await vs(e,t),n=jt(o,e.account),s=expectEvmSignature(yield Qt(Kt(n)));return Wt(n,Vt(n,s))}.call(null)}var Cm=n(g$1,f,m,c,b,a);async function Zt(e,r){let t=l(r,Ss);return async function*(){let o=await Ts(e,t),n=jt(o,e.account),s=expectEvmSignature(yield Qt(Kt(n))),a=Wt(n,Vt(n,s));return t.postOnly===true?{...a,postOnly:true}:a}.call(null)}var EI=xm;async function hI(e,r){return Gs(e,Yt(e,r))}var SI=Cm;async function TI(e,r){return Gs(e,Zt(e,r))}async function Gs(e,r){let t=await r;return async function*(){let o=yield*t;return Dr(e)(o)}.call(null)}var km=250,qm=3e4,vm={timeoutMs:z.number().int().positive().optional()},Am=z.object(vm).default({}),AI=n(g$1,f,m,h,i,c,b,a);function Om(e){return e.status===TradeStatus.Confirmed||e.status===TradeStatus.Failed}function $s(e){return e.status===TradeStatus.Failed}async function OI(e,r,t){let{timeoutMs:o=qm}=l(t,Am),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(b=>!s.has(b)),C=await Promise.all(P.map(b=>Jo(e,{id:b}).firstPage()));for(let b of C)for(let _ of b.items)n.includes(_.id)&&Om(_)&&s.set(_.id,_);if(s.size===n.length)break;if(Date.now()>=a){let b=n.filter(_=>!s.has(_));throw new h(`Timed out waiting for trades to settle: ${b.join(", ")}`)}await delay(km);}let f=[...s.values()];if(f.every($s))throw new i(`Every fill of order ${r.orderId} failed execution: ${n.join(", ")}`);return [...new Set(f.filter(P=>!$s(P)).map(P=>P.transactionHash))].map(P=>TxHashSchema.parse(P))}async function Ys(e,r){let t=r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,{allowances:o}=await dt(e,r.side===OrderSide.BUY?{assetType:t}:{assetType:t,tokenId:r.tokenId});return Lm(o,r.spenderAddress)}function Lm(e,r){return Object.entries(e).find(([o])=>isSameEvmAddress(o,r))?.[1]??0n}var QI=n(j$1,k,g$1,f,m,c,b,a);function Mm(e,r){return Yt(e,r).then(H(e.signer))}var YI=n(j$1,k,g$1,f,m,h,i,c,b,a);function ZI(e,r){return Mm(e,r).then(t=>Js(e,t))}var JI=n(j$1,g$1,f,m,c,b,a);function Fm(e,r){return Zt(e,r).then(H(e.signer))}var XI=n(j$1,g$1,f,m,h,i,c,b,a);function ek(e,r){return Fm(e,r).then(t=>Js(e,t))}async function Js(e,r){let t=Dr(e);try{return await t(r)}catch(o){if(!Um(o))throw o;let n=await Bm(e,r,t);if(n===void 0)throw o;return n}}async function Bm(e,r,t){return await Dm(e,r)?t(r):void 0}function Um(e){return e instanceof f&&e.status===400&&e.message.includes("allowance is not enough")}async function Dm(e,r){let t=await Me(e,r.tokenId),o=ve(e,t.negRisk),n=BigInt(r.makerAmount);return await Ys(e,{spenderAddress:o,side:r.side,tokenId:r.tokenId})>=n?false:(await(r.side===OrderSide.BUY?await Ln(e,{amount:"max",spenderAddress:o,tokenAddress:e.environment.contracts.collateralToken}):await Mn(e,{operatorAddress:o,tokenAddress:e.environment.contracts.conditionalTokens})).wait(),await Xo(e,{assetType:r.side===OrderSide.BUY?AssetType.COLLATERAL:AssetType.CONDITIONAL,tokenId:r.side===OrderSide.SELL?r.tokenId:void 0}),true)}function Xs(e){let r=TypedData.getSignPayload(eo(e));return expectEvmSignature(Signature.toHex(Secp256k1.sign({payload:r,privateKey:e.privateKey})))}function eo(e){return {domain:{chainId:e.chainId,name:"Polymarket",version:"1"},message:{data:Hash.keccak256(encode(ea(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 ea(e){return Array.isArray(e)?e.filter(r=>r!==void 0).map(ea):e}var Nr=class{#e;#r;#t;constructor({root:r,headers:t,resolveHeaders:o}){this.#e=Do.create({prefixUrl:r,throwHttpErrors:false}),this.#r=t,this.#t=o;}get(r,t={}){return this.#n("GET",r,t)}post(r,t={}){return this.#n("POST",r,t)}patch(r,t={}){return this.#n("PATCH",r,t)}del(r,t={}){return this.#n("DELETE",r,t)}#o(r){return r.startsWith("/")?r.slice(1):r}#n(r,t,o){return this.#c(this.#a(r,t,o))}async#a(r,t,o){let n=this.#s(r,t,o),s=await this.#t?.(n),a=this.#p(this.#r,n.headers,s);return n.body!==void 0&&!a.has("content-type")&&a.set("content-type","application/json"),this.#e(this.#o(t),{body:n.body,headers:a,method:r,searchParams:n.params,...o.timeout!==void 0&&{timeout:o.timeout}})}#s(r,t,o){return {body:"json"in o?this.#i(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}}#i(r){if(r!==void 0)return JSON.stringify(r)}#p(...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}#c(r){return ResultAsync.fromPromise(r.then(async t=>{if(t.ok)return t;let o=this.#d(t);if(t.status===429)throw new g$1(`Request to ${t.url} was rate limited`,{retryAfter:o});let{code:n,message:s}=await this.#l(t);throw new f(s,{code:n,retryAfter:o,status:t.status})}),t=>t instanceof g$1||t instanceof f?t:c.fromError(t))}#d(r){let t=r.headers.get("retry-after");if(!(t===null||!/^\d+$/.test(t)))return Number(t)}async#l(r){let t=r.headers.get("content-type")?.toLowerCase();if(t?.includes("application/json")){let{error:n,code:s}=await r.clone().json().catch(()=>({}));if(n)return {message:`${String(n)} (${r.url})`,...typeof s=="string"&&s!==""?{code:s}:{}}}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 Km=1e4,Vm=3e4,Qm=5e3,Ym=10*6e4,Zm=3e4,Jm=25e3,Xm=65e3,ra=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},Km);}handleMessage(r){return r!=="PONG"?false:(this.#e=Date.now(),true)}isStale(r){return r-this.#e>Vm}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},ta=class{#e=0;#r;start(r){this.stop(),this.#e=Date.now(),this.#r=setNonBlockingInterval(()=>{r("PING");},Qm);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>Ym}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}},oa=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>Zm}},Gr=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"}}));},Jm);}handleMessage(){return this.#e=Date.now(),false}isStale(r){return r-this.#e>Xm}stop(){this.#r!==void 0&&(clearInterval(this.#r),this.#r=void 0);}};var tf=5e3,of=250,nf=3e4,$r=class{#e;#r=0;schedule(r){if(this.#e!==void 0||!r.shouldReconnect())return;let t=af(this.#r,{baseMs:of,maxMs:nf});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);}}},Kr=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.#a(r).then(()=>({reusedOpenSocket:false})).catch(n=>{throw this.#t===o&&(this.#t=void 0),n});return this.#t=o,o}send(r){return this.#n(JSON.stringify(r))}#n(r){return this.#r?.readyState!==WebSocket.OPEN?false:(this.#r.send(r),true)}async close(){let r=await this.#d();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#a(r){let t=await r.prepare?.();return new Promise((o,n)=>{let s=sf(r.url,r.headers),a=()=>{s.removeEventListener("error",f),this.#s(s),this.#p(),r.onOpen(t),o(s);},f=P=>{s.removeEventListener("open",a),n(new c(`WebSocket connection failed: ${r.url}`,{cause:P}));};s.addEventListener("open",a,{once:true}),s.addEventListener("error",f,{once:true}),s.addEventListener("message",P=>{if(this.#r!==s)return;let C=String(P.data);if(this.#e?.handleMessage(C))return;let b;try{b=JSON.parse(C);}catch{return}r.onMessage(b);}),s.addEventListener("close",P=>{this.#r===s&&(this.#i(),r.onConnectionLost({code:P.code||1005,reason:P.reason??""}));}),s.addEventListener("error",()=>r.onError());})}#s(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.#n(t)),this.#o=setNonBlockingInterval(()=>{if(!r.isStale(Date.now()))return;let t=this.#r;t?.readyState===WebSocket.OPEN&&t.close();},tf));}#c(){this.#o!==void 0&&(clearInterval(this.#o),this.#o=void 0),this.#e?.stop();}async#d(){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 sf(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 af(e,r){let t=Math.min(r.baseMs*2**e,r.maxMs);return Math.random()*t}var Vr=1440*60*1e3,pa=90*Vr,se=z.number().int().nonnegative(),oo=z.object({start:se.optional(),end:se.optional()}),ca=z.object({interval:PerpsPnlIntervalSchema,start:se,end:se.optional()}),kf=z.enum(["perpsFundingPayments","perpsDeposits","perpsWithdrawals"]),qf=z.enum(["perpsEquityHistory","perpsPnlHistory"]),no=z.object({kind:kf,startTimestamp:se,endTimestamp:se,instrumentId:PerpsInstrumentIdSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional(),seenKeys:z.array(z.string())}),da=z.object({kind:qf,startTimestamp:se,endTimestamp:se,interval:PerpsPnlIntervalSchema});async function ua(e){return await unwrap(e.get("/v1/account/balances").andThen(y(FetchPerpsBalancesResponseSchema)))}async function la(e){return await unwrap(e.get("/v1/account/portfolio").andThen(y(FetchPerpsPortfolioResponseSchema)))}async function ma(e){return await unwrap(e.get("/v1/account/stats").andThen(y(FetchPerpsAccountStatsResponseSchema)))}async function fa(e){return await unwrap(e.get("/v1/account/auto-cancel").andThen(y(FetchPerpsAutoCancelStatusResponseSchema)))}var vf=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function ya(e,r){let t=l(r,vf);return await unwrap(e.get("/v1/account/config",{params:ue(t)}).andThen(y(FetchPerpsAccountConfigResponseSchema)))}var Af=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function Pa(e,r){let t=l(r,Af);return await unwrap(e.get("/v1/account/open-orders",{params:ue(t)}).andThen(y(FetchPerpsOpenOrdersResponseSchema)))}var Of=z.object({orderId:PerpsOrderIdSchema.optional(),clientOrderId:PerpsClientOrderIdSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional(),start:se.optional(),end:se.optional()}).default({}),wf=Of.transform(({end:e,start:r,...t})=>({...t,endTimestamp:e,startTimestamp:r}));async function Ra(e,r){let t=l(r,wf);return await unwrap(e.get("/v1/account/orders",{params:ue(t)}).andThen(y(FetchPerpsOrdersResponseSchema)))}var Lf=z.object({start:se.optional(),end:se.optional(),sort:PerpsSortDirectionSchema.optional(),cursor:PaginationCursorSchema.optional()});function ga(e,r={}){let t=l(r,Lf);return x(o=>e.get("/v1/account/fills",{params:ue({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 Mf=oo.extend({cursor:PaginationCursorSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional()}),Ff=z.object({cursor:PaginationCursorSchema}),Bf=z.union([Mf.transform(({cursor:e,...r})=>({cursor:e,params:so(r,Vr)})),Ff.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Ea(e,r={}){let{cursor:t,params:o}=l(r,Bf);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps funding payment params."),s={kind:"perpsFundingPayments",seenKeys:[],...o}):s=Qe(n,no);let{kind:a,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/funding",{params:ue(P)}).andThen(y(ListPerpsFundingPaymentsResponseSchema)).map(b=>{let _=b.data.filter(B=>!C.has(`${B.instrumentId}:${B.timestamp}:${B.funding}`));return ao({getKey:B=>`${B.instrumentId}:${B.timestamp}:${B.funding}`,getTimestamp:B=>B.timestamp,items:_,responseData:b.data,responseMore:b.more,state:s})})},t)}var Uf=oo.extend({cursor:PaginationCursorSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),hash:TxHashSchema.optional()}),Df=z.object({cursor:PaginationCursorSchema}),zf=z.union([Uf.transform(({cursor:e,...r})=>({cursor:e,params:so(r,pa)})),Df.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function ha(e,r={}){let{cursor:t,params:o}=l(r,zf);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps deposit params."),s={kind:"perpsDeposits",seenKeys:[],...o}):s=Qe(n,no);let{kind:a,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/deposits",{params:ue(P)}).andThen(y(ListPerpsDepositsResponseSchema)).map(b=>{let _=b.data.filter(B=>!C.has(B.hash));return ao({getKey:B=>B.hash,getTimestamp:oy,items:_,responseData:b.data,responseMore:b.more,state:s})})},t)}var jf=oo.extend({cursor:PaginationCursorSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional()}),Wf=z.object({cursor:PaginationCursorSchema}),_f=z.union([jf.transform(({cursor:e,...r})=>({cursor:e,params:so(r,pa)})),Wf.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Sa(e,r={}){let{cursor:t,params:o}=l(r,_f);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps withdrawal params."),s={kind:"perpsWithdrawals",seenKeys:[],...o}):s=Qe(n,no);let{kind:a,seenKeys:f,...P}=s,C=new Set(s.seenKeys);return e.get("/v1/account/withdrawals",{params:ue(P)}).andThen(y(ListPerpsWithdrawalsResponseSchema)).map(b=>{let _=b.data.filter(B=>!C.has(String(B.withdrawalId)));return ao({getKey:B=>String(B.withdrawalId),getTimestamp:ny,items:_,responseData:b.data,responseMore:b.more,state:s})})},t)}var Hf=ca.extend({cursor:PaginationCursorSchema.optional()}),Nf=z.object({cursor:PaginationCursorSchema}),Gf=z.union([Hf.transform(({cursor:e,...r})=>({cursor:e,params:ka(r)})),Nf.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Ta(e,r){let{cursor:t,params:o}=l(r,Gf);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps equity history params."),s={kind:"perpsEquityHistory",...o}):s=Qe(n,da);let{kind:a,...f}=s;return e.get("/v1/account/equity",{params:ue(f)}).andThen(y(ListPerpsEquityHistoryResponseSchema)).map(P=>{let C=P.data.at(-1),b=P.more&&C!==void 0&&C.timestamp<s.endTimestamp;return {items:P.data,hasMore:b,nextCursor:b?Qr({...s,startTimestamp:C.timestamp+qa(s.interval)}):void 0}})},t)}var $f=ca.extend({cursor:PaginationCursorSchema.optional()}),Kf=z.object({cursor:PaginationCursorSchema}),Vf=z.union([$f.transform(({cursor:e,...r})=>({cursor:e,params:ka(r)})),Kf.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function xa(e,r){let{cursor:t,params:o}=l(r,Vf);return x(n=>{let s;n===void 0?(invariant(o!==void 0,"Expected initial Perps PnL history params."),s={kind:"perpsPnlHistory",...o}):s=Qe(n,da);let{kind:a,...f}=s;return e.get("/v1/account/pnl",{params:ue(f)}).andThen(y(ListPerpsPnlHistoryResponseSchema)).map(P=>{let C=P.data.at(-1),b=P.more&&C!==void 0&&C.timestamp<s.endTimestamp;return {items:P.data,hasMore:b,nextCursor:b?Qr({...s,startTimestamp:C.timestamp+qa(s.interval)}):void 0}})},t)}var Qf=z.object({kind:z.literal("perpsNotifications"),cursor:z.string().min(1),sinceSeq:z.number().int().nonnegative().optional(),limit:z.number().int().positive().optional()}),Yf=z.object({sinceSeq:z.number().int().nonnegative().optional(),limit:z.number().int().positive().optional(),cursor:PaginationCursorSchema.optional()}),Zf=z.object({cursor:PaginationCursorSchema}),Jf=z.union([Yf.transform(({cursor:e,...r})=>({cursor:e,params:r})),Zf.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Ca(e,r={}){let{cursor:t,params:o}=l(r,Jf);return x(n=>{let s;n===void 0?invariant(o!==void 0,"Expected initial Perps notifications params."):s=Qe(n,Qf);let a=s===void 0?o?.sinceSeq:s.sinceSeq,f=s===void 0?o?.limit:s.limit;return e.get("/v1/account/notifications",{params:ue({cursor:s?.cursor,limit:f,sinceSeq:a})}).andThen(y(ListPerpsNotificationsResponseSchema)).map(P=>{let C=P.has_more&&P.next_cursor!==null;return {items:P.items,hasMore:C,nextCursor:C&&P.next_cursor!==null?Qr({kind:"perpsNotifications",cursor:P.next_cursor,limit:f,sinceSeq:a}):void 0}})},t)}async function ba(e){return (await unwrap(e.get("/v1/account/notifications",{params:ue({limit:1})}).andThen(y(FetchPerpsUnreadNotificationsCountResponseSchema)))).unread}var Xf=z.object({ids:z.array(z.string().min(1)).min(1)}),ey=z.object({upTo:z.object({id:z.string().min(1),timestamp:z.number().int().nonnegative()})}),ry=z.union([Xf.transform(({ids:e})=>({ids:e})),ey.transform(({upTo:e})=>({before:ty(e)}))]);async function Ia(e,r){let t=l(r,ry),o=await unwrap(e.post("/v1/account/notifications/read",{json:t}).andThen(y(MarkPerpsNotificationsReadResponseSchema)));if(o.status==="err")throw new f(o.error??"Perps notifications read request was rejected.",{status:200})}function ty(e){return btoa(JSON.stringify({ts:e.timestamp,id:e.id})).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function so(e,r){let t=Date.now(),{end:o,start:n,...s}=e;return {...s,endTimestamp:o??t,startTimestamp:n??t-r}}function ka(e){return {endTimestamp:e.end??Date.now(),interval:e.interval,startTimestamp:e.start}}function Qe(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps account pagination cursor",{cause:t})}}function Qr(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function ue(e){return g(e,E())}function oy(e){return e.confirmedTimestamp??e.createdTimestamp}function ny(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 f of e.items)e.getTimestamp(f)===s&&a.add(e.getKey(f));return {items:e.items,hasMore:n,nextCursor:Qr({...e.state,endTimestamp:s,seenKeys:Array.from(a)})}}function qa(e){switch(e){case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return Vr;case "1w":return 7*Vr}invariant(false,`Unsupported Perps account history interval: ${String(e)}`);}var co=z.object({instrumentId:PerpsInstrumentIdSchema,side:OrderSideSchema,quantity:PerpsDecimalInputSchema,reduceOnly:z.boolean().default(false),clientOrderId:PerpsClientOrderIdSchema.optional()}),dy=co.extend({price:PerpsDecimalInputSchema,timeInForce:z.literal(PerpsTimeInForce.GTC),postOnly:z.boolean().default(false)}),uy=co.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z.literal(PerpsTimeInForce.IOC),postOnly:z.never().optional()}),ly=co.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z.literal(PerpsTimeInForce.FOK),postOnly:z.never().optional()}),uo=z.discriminatedUnion("timeInForce",[dy,uy,ly]),Yr=z.object({triggerPrice:PerpsDecimalInputSchema,limitPrice:PerpsDecimalInputSchema.optional()}),Zr=z.object({triggerPrice:PerpsDecimalInputSchema}),my=z.union([z.object({takeProfit:Yr,stopLoss:Yr.optional()}),z.object({takeProfit:Yr.optional(),stopLoss:Yr})]),fy=z.object({orders:z.array(uo).min(1),expiresAt:z.number().int().positive().optional()});async function Fa(e,r){let t=l(r,fy);return await e.executeCommand({op:["createOrders",t.orders.map(lo)],expiresAt:t.expiresAt},z.array(PerpsPostOrderAckSchema))}var yy=z.intersection(uo,z.intersection(my,z.object({clientOrderId:PerpsClientOrderIdSchema.default(Va),expiresAt:z.number().int().positive().optional()}))),Py=z.intersection(uo,z.object({clientOrderId:PerpsClientOrderIdSchema.default(Va),expiresAt:z.number().int().positive().optional(),takeProfit:z.never().optional(),stopLoss:z.never().optional()})),Ba=z.array(PerpsPostOrderAckSchema).min(1).refine(e=>e.every(r=>r.status==="ok"),"Expected successful Perps order acknowledgements.");function Ry(e){return e.takeProfit!==void 0||e.stopLoss!==void 0}async function Ua(e,r){if(Ry(r))return await gy(e,r);let t=l(r,Py),[,o]=await e.executeCommandWithEvent({op:["createOrders",[lo(t)]],expiresAt:t.expiresAt},Ba,Qa(t.clientOrderId));return {order:o.payload}}async function gy(e,r){let t=l(r,yy),o=[lo(t)],n=t.side===OrderSide.SELL;t.takeProfit!==void 0&&o.push(rt({buy:n,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:toDecimalString(t.quantity),trigger:t.takeProfit})),t.stopLoss!==void 0&&o.push(rt({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},Ba,Qa(t.clientOrderId)),f=1,P={};return t.takeProfit!==void 0&&(P.takeProfit=et(expectPresent(s[f++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(P.stopLoss=et(expectPresent(s[f],"Expected Perps stop-loss acknowledgement."))),{order:a.payload,tpSl:P}}var Ey=z.union([z.object({takeProfit:Zr,stopLoss:Zr.optional()}),z.object({takeProfit:Zr.optional(),stopLoss:Zr})]),hy=z.intersection(Ey,z.object({instrumentId:PerpsInstrumentIdSchema,expiresAt:z.number().int().positive().optional()}));async function Da(e,r){let t=l(r,hy),o=Ay(await e.fetchPortfolio(),t.instrumentId),n=[];t.takeProfit!==void 0&&n.push(rt({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:"0",trigger:t.takeProfit})),t.stopLoss!==void 0&&n.push(rt({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:"0",trigger:t.stopLoss}));let s=await e.executeCommand({op:["createOrders",n,PerpsTpSlScope.Position],expiresAt:t.expiresAt},z.array(PerpsPostOrderAckSchema));for(let P of s)if(P.status==="err")throw new f(P.error,{status:200});let a=0,f$1={};return t.takeProfit!==void 0&&(f$1.takeProfit=et(expectPresent(s[a++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(f$1.stopLoss=et(expectPresent(s[a],"Expected Perps stop-loss acknowledgement."))),{tpSl:f$1}}var Sy=z.union([z.object({orderId:PerpsOrderIdSchema,clientOrderId:z.undefined().optional(),expiresAt:z.number().int().positive().optional()}),z.object({clientOrderId:PerpsClientOrderIdSchema,orderId:z.undefined().optional(),expiresAt:z.number().int().positive().optional()})]);async function za(e,r){let t=l(r,Sy),[o]=t.orderId!==void 0?await Xr(e,{orderIds:[t.orderId],expiresAt:t.expiresAt}):await Xr(e,{clientOrderIds:[t.clientOrderId],expiresAt:t.expiresAt});return expectPresent(o,"Expected Perps cancel order result.")}var Ty=z.union([z.object({orderIds:z.array(PerpsOrderIdSchema).min(1),clientOrderIds:z.undefined().optional(),expiresAt:z.number().int().positive().optional()}),z.object({clientOrderIds:z.array(PerpsClientOrderIdSchema).min(1),orderIds:z.undefined().optional(),expiresAt:z.number().int().positive().optional()})]);async function Xr(e,r){let t=l(r,Ty);return t.orderIds!==void 0?await e.executeCommand({op:["cancelOrders",t.orderIds],expiresAt:t.expiresAt},z.array(PerpsCancelOrderResultSchema)):await e.executeCommand({op:["cancelOrdersCOID",t.clientOrderIds],expiresAt:t.expiresAt},z.array(PerpsCancelOrderResultSchema))}var xy=z.object({instrumentId:PerpsInstrumentIdSchema.optional(),expiresAt:z.number().int().positive().optional()}).default({});async function ja(e,r){let t=l(r,xy),o=["cancelAll",t.instrumentId===void 0?[]:[t.instrumentId]];await e.executeDeleteCommand({path:"/v1/trade/orders/all",op:o,responseSchema:PerpsCancelAllOrdersResponseSchema,expiresAt:t.expiresAt});}var Cy=5e3,by=z.object({cancelAt:z.number().int().positive(),expiresAt:z.number().int().positive().optional()}).superRefine((e,r)=>{let t=Date.now()+Cy;e.cancelAt<t&&r.addIssue({code:"custom",message:"cancelAt must be at least 5 seconds in the future.",path:["cancelAt"]});}),Wa=n(l$1,g$1,f,m,c,b,a),Iy="auto_cancel_daily_limit_reached";async function _a(e,r,t){let o=l(t,by),n=["autoCancel",[o.cancelAt]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:Rr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)).mapErr(a=>a instanceof f&&a.message.startsWith(`${Iy} (`)?new l$1("Auto-cancel daily trigger limit reached.",{cause:a}):a));}var ky=z.object({expiresAt:z.number().int().positive().optional()}).default({});async function Ha(e,r,t){let o=l(t,ky),n=["autoCancel",[0]],s=r(n,o.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:Rr(n)}}).andThen(y(PerpsAutoCancelResponseSchema)));}var qy=z.object({instrumentId:PerpsInstrumentIdSchema,leverage:z.number().int().positive(),crossMargin:z.boolean()}),Na=n(f,m,c,a);async function Ga(e,r){let t=l(r,qy);return await e.executeCommand({op:["updateLeverage",[t.instrumentId,t.leverage,t.crossMargin]]},PerpsUpdateLeverageResultSchema)}var vy=z.object({instrumentId:PerpsInstrumentIdSchema,amount:PerpsDecimalInputSchema}),$a=n(f,m,c,a);async function Ka(e,r){let t=l(r,vy),o=toDecimalString(t.amount),n=await e.executeCommand({op:["updateMargin",[t.instrumentId,o]]},PerpsCommandAckSchema);if(n.status==="err")throw new f(n.error,{status:200})}function Va(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));return PerpsClientOrderIdSchema.parse(Array.from(e,r=>r.toString(16).padStart(2,"0")).join(""))}function Qa(e){return r=>r.type==="order"&&r.payload.clientOrderId===e}function et(e){if(e.status==="err")throw new f(e.error,{status:200});return {orderId:e.orderId}}function Ay(e,r){let t=e.positions.find(n=>n.instrumentId===r),o=t===void 0?0:Oy(t.size);if(o===0)throw new a(`No open Perps position for instrument ${r}.`);return o<0}function Oy(e){let r=e.trim(),t=r.replace(/^[+-]/,"").replace(".","");return /^0*$/.test(t)?0:r.startsWith("-")?-1:1}function lo(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 rt(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 Rr(e){let[r,t,o]=e;switch(r){case "createOrders":return My({args:t.map(wy),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 wy(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=Ly(e[8])),r}function Ly(e){let r={tpsl:e[2],trp:e[1]};return e[0]!==void 0&&(r.market=e[0]),r}function My(e,r){return r!==void 0&&(e.grp=r),e}var jy=3e4,Ja=3e4,Wy=2e3,_y=["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications","tpsl"],Hy=new Set(["notifications"]),Ny=z.object({id:z.number().int().positive().optional(),data:z.unknown().optional()}).passthrough(),Xa=z.union([PerpsCommandAckSchema,z.array(PerpsCommandAckSchema)]).transform(e=>Array.isArray(e)?e.find(r=>r.status==="err")??e[0]:e),ei=class{credentials;#e;#r;#t;#o;#n;#a=new Kr({heartbeat:new Gr});#s=pushable({objectMode:true});#i=new Map;#p=new Set;#c=new $r;#d=new Map;#l=1;#u;constructor(r){this.#e=new Nr({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.#n=r.wsUrl;}get closed(){return this.#u!==void 0}async connect(){await this.#P(false);}async close(){this.#u===void 0&&(this.#u=this.#x()),await this.#u;}[Symbol.asyncIterator](){return this.#s[Symbol.asyncIterator]()}async fetchBalances(){return await ua(this.#e)}async fetchPortfolio(){return await la(this.#e)}async fetchStats(){return await ma(this.#e)}async fetchAccountConfig(r){return await ya(this.#e,r)}async fetchAutoCancelStatus(){return await fa(this.#e)}async fetchOpenOrders(r){return await Pa(this.#e,r)}async fetchOrders(r){return await Ra(this.#e,r)}listFills(r={}){return ga(this.#e,r)}listFundingPayments(r={}){return Ea(this.#e,r)}listDeposits(r={}){return ha(this.#e,r)}listWithdrawals(r={}){return Sa(this.#e,r)}listEquityHistory(r){return Ta(this.#e,r)}listPnlHistory(r){return xa(this.#e,r)}listNotifications(r={}){return Ca(this.#e,r)}async fetchUnreadNotificationsCount(){return await ba(this.#e)}async markNotificationsRead(r){await Ia(this.#e,r);}async placeOrder(r){return await Ua(this,r)}async postOrders(r){return await Fa(this,r)}async placePositionTpSl(r){return await Da(this,r)}async cancelOrder(r){return await za(this,r)}async cancelOrders(r){return await Xr(this,r)}async cancelAllOrders(r){await ja(this,r);}async armAutoCancel(r){await _a(this.#e,(t,o)=>this.#m(t,o),r);}async disarmAutoCancel(r){await Ha(this.#e,(t,o)=>this.#m(t,o),r);}async updateLeverage(r){return await Ga(this,r)}async updateMargin(r){await Ka(this,r);}async#P(r){await this.#a.connect({onConnectionLost:()=>this.#I(),onError:()=>{},onMessage:t=>this.#C(t),onOpen:()=>{},headers:this.#t,url:this.#n}),await this.#h(),await this.#S(),this.#c.resetBackoff(),r&&(this.#d.clear(),this.#s.push({reason:"reconnect",type:"resync"}));}async#h(){await this.#y({id:this.#l++,op:{args:{proxy:this.credentials.proxy,secret:this.credentials.secret},type:"auth"},req:"post"},Xa,jy,"Perps session authentication timed out.");}async#S(){await this.#y({id:this.#l++,req:"sub",chs:_y},Xa,Ja,"Perps session subscription timed out.");}#T(){return {"POLYMARKET-PROXY":this.credentials.proxy,"POLYMARKET-SECRET":this.credentials.secret}}async executeCommand(r,t){let o=Rr(r.op),n=this.#m(r.op,r.expiresAt);return await this.#y({...n,id:this.#l++,op:o,req:"post"},t,Ja,"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,Wy),()=>{});try{let[a,f]=await Promise.all([s,n.promise]);return [a,f]}finally{this.#f(n);}}async executeDeleteCommand(r){let t=this.#m(r.op,r.expiresAt);return await unwrap(this.#e.del(r.path,{json:{...t,op:Rr(r.op)}}).andThen(y(r.responseSchema)))}#m(r,t){let o=Ky(),n=Date.now(),s;try{s=Xs({chainId:this.#r,op:r,privateKey:this.credentials.privateKey,salt:o,timestamp:n});}catch(f){throw m.fromError(f,"Could not sign the Perps session command")}let a={salt:o,sig:s,ts:n};return t!==void 0&&(a.exp=t),a}async#y(r,t,o,n){let s=Gy(t);this.#i.set(r.id,s);let a=setNonBlockingTimeout(()=>{s.reject(new c(n));},o);try{if(!this.#a.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.#R(new c("Perps session closed.")),this.#E(new c("Perps session closed.")),this.#s.end(),await this.#a.close(),this.#o(this);}#C(r){if(this.#b(r)||PerpsNotificationsResyncFrameSchema.safeParse(r).success)return;let t=PerpsSessionUpdateEventSchema.safeParse(r);if(!t.success)return;let o=t.data;this.#k(o),this.#g(o);}#b(r){let t=Ny.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=mo(t.data.data??t.data);return s!==void 0?o.reject(new f(s.error,{status:200})):o.reject(new c("Perps session unexpected response.")),true}return $y(n.data)?o.reject(new f(n.data.error,{status:200})):o.resolve(n.data),true}#I(){this.#R(new c("Perps session connection closed.")),this.#E(new c("Perps session connection closed.")),this.#u===void 0&&this.#c.schedule({reconnect:()=>this.#P(true),shouldReconnect:()=>this.#u===void 0});}#R(r){for(let t of this.#i.values())t.reject(r);this.#i.clear();}#k(r){if(Hy.has(r.channel))return;let t=this.#d.get(r.channel);this.#d.set(r.channel,r.sequence),!(t===void 0||r.sequence===t+1)&&this.#g({channel:r.channel,previousSequence:t,reason:"sequence_gap",sequence:r.sequence,type:"resync"});}#g(r){this.#A(r),this.#s.push(r);}#q(r){let t,o,s={promise:new Promise((a,f)=>{t=a,o=f;}),predicate:r,reject:o,resolve:t};return this.#p.add(s),s}#v(r,t){this.#p.has(r)&&(r.timeout=setNonBlockingTimeout(()=>{this.#f(r),r.reject(new h("Perps event wait timed out."));},t));}#A(r){for(let t of Array.from(this.#p))t.predicate(r)&&(this.#f(t),t.resolve(r));}#f(r){this.#p.delete(r)&&r.timeout!==void 0&&clearTimeout(r.timeout);}#E(r){for(let t of Array.from(this.#p))this.#f(t),t.reject(r);}};function Gy(e){let r,t;return {promise:new Promise((n,s)=>{r=n,t=s;}),reject:t,resolve:r,schema:e}}function $y(e){return Array.isArray(e)?false:mo(e)!==void 0}function mo(e){if(Array.isArray(e)){for(let t of e){let o=mo(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 Ky(){let[e]=globalThis.crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var De=n(g$1,f,c,b,a),Re=z.number().int().nonnegative(),oi=1440*60*1e3,mP=z.object({instrumentId:PerpsInstrumentIdSchema.optional(),category:PerpsInstrumentCategorySchema.optional()}).default({}),uq=De;async function lq(e,r){let t=l(r,mP);return unwrap(e.perps.get("/v1/info/instruments",{params:g(t,E())}).andThen(y(FetchPerpsInstrumentsResponseSchema)))}var fP=z.object({instrumentId:PerpsInstrumentIdSchema}),mq=De;async function fq(e,r){let t=l(r,fP),[o]=await PP(e,t);if(o===void 0)throw new b(`Perps ticker ${t.instrumentId} was not returned by the API`);return o}var yP=z.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({}),yq=De;async function PP(e,r){let t=l(r,yP),o=g(t,E()),[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(f=>[f.instrumentId,f]));return n.map(f=>{let P=a.get(f.instrumentId);return {...f,openPrice:P?.openPrice,volume24h:P?.volume}})}var RP=z.union([z.literal(10),z.literal(100),z.literal(500),z.literal(1e3)]),gP=z.object({instrumentId:PerpsInstrumentIdSchema,depth:RP.default(100)}),Pq=De;async function Rq(e,r){let t=l(r,gP);return unwrap(e.perps.get("/v1/info/book",{params:g(t,E())}).andThen(y(PerpsBookSchema)))}var EP=z.object({instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,start:Re.optional(),end:Re.optional(),cursor:PaginationCursorSchema.optional()}),hP=z.object({cursor:PaginationCursorSchema}),SP=z.union([EP.transform(({cursor:e,...r})=>({cursor:e,params:OP(r)})),hP.transform(({cursor:e})=>({cursor:e,params:void 0}))]),gq=De;function Eq(e,r){let{cursor:t,params:o}=l(r,SP);return x(n=>{let s=n===void 0?wP(o):FP(n);return e.perps.get("/v1/info/klines",{params:g({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,interval:s.interval,startTimestamp:s.startTimestamp},E())}).andThen(y(FetchPerpsCandlesResponseSchema)).map(a=>{let f=a.data.at(-1),P=a.more&&f!==void 0;return {items:a.data,hasMore:P,nextCursor:P?Ro({...s,startTimestamp:f.timestamp+DP(s.interval)}):void 0}})},t)}var ni=z.object({instrumentId:PerpsInstrumentIdSchema,start:Re.optional(),end:Re.optional()}),TP=ni.extend({cursor:PaginationCursorSchema.optional()}),xP=z.object({cursor:PaginationCursorSchema}),CP=z.union([TP.transform(({cursor:e,...r})=>({cursor:e,params:si(r)})),xP.transform(({cursor:e})=>({cursor:e,params:void 0}))]),bP=ni.extend({cursor:PaginationCursorSchema.optional()}),IP=z.object({cursor:PaginationCursorSchema}),hq=De;function Sq(e,r){let{cursor:t,params:o}=l(r,CP);return x(n=>{let s=n===void 0?LP(o):BP(n);return e.perps.get("/v1/info/funding",{params:g({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},E())}).andThen(y(FetchPerpsFundingHistoryResponseSchema)).map(a=>{let f=a.data.at(-1),P=a.more&&f!==void 0&&f.timestamp>s.startTimestamp;return {items:a.data,hasMore:P,nextCursor:P?Ro({...s,endTimestamp:f.timestamp-1}):void 0}})},t)}var kP=z.union([bP.transform(({cursor:e,...r})=>({cursor:e,params:si(r)})),IP.transform(({cursor:e})=>({cursor:e,params:void 0}))]),Tq=De;function xq(e,r){let{cursor:t,params:o}=l(r,kP);return x(n=>{let s=n===void 0?MP(o):UP(n),a=new Set(s.seenTradeIds);return e.perps.get("/v1/info/trades",{params:g({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},E())}).andThen(y(FetchPerpsTradesResponseSchema)).map(f=>{let P=f.data.filter(sp=>!a.has(sp.tradeId)),C=f.data.at(-1),b=P.at(-1),_=b?.timestamp??C?.timestamp,B=f.more&&_!==void 0&&_>s.startTimestamp;return {items:P,hasMore:B,nextCursor:B?Ro({...s,endTimestamp:b===void 0?_-1:_,seenTradeIds:b===void 0?[]:zP(s,P,b)}):void 0}})},t)}var Cq=n(g$1,f,c,b);async function bq(e){return (await unwrap(e.perps.get("/v1/info/fees").andThen(y(FetchPerpsFeesResponseSchema)))).feeSchedule}var qP=z.object({kind:z.literal("perpsCandles"),instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,startTimestamp:Re,endTimestamp:Re}),vP=z.object({kind:z.literal("perpsFundingHistory"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:Re,endTimestamp:Re}),AP=z.object({kind:z.literal("perpsTrades"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:Re,endTimestamp:Re,seenTradeIds:z.array(PerpsTradeIdSchema)});function OP(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,interval:e.interval,startTimestamp:e.start??r-oi}}function si(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,startTimestamp:e.start??r-oi}}function wP(e){return invariant(e!==void 0,"Expected initial Perps candles params."),{kind:"perpsCandles",...e}}function LP(e){return invariant(e!==void 0,"Expected initial Perps funding params."),{kind:"perpsFundingHistory",...e}}function MP(e){return invariant(e!==void 0,"Expected initial Perps trades params."),{kind:"perpsTrades",seenTradeIds:[],...e}}function FP(e){return Po(e,qP)}function BP(e){return Po(e,vP)}function UP(e){return Po(e,AP)}function Po(e,r){try{return r.parse(JSON.parse(atob(e)))}catch(t){throw new a("Invalid Perps pagination cursor",{cause:t})}}function Ro(e){return toPaginationCursor(btoa(JSON.stringify(e)))}function DP(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 zP(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 jP=z.custom(e=>isPrivateKey(e),"Expected a hex-encoded 32-byte private key."),WP=z.object({proxy:z.string().transform(e=>expectEvmAddress(e)),privateKey:jP,secret:z.string().min(1),expiresAt:z.number().int().positive()}),_P=10080*60*1e3,HP=z.strictObject({expiresIn:z.number().int().positive().default(_P),label:z.string().min(1).optional()}),NP=z.strictObject({credentials:WP}),GP=z.union([HP,NP]),$P=z.object({proxy:z.string()}),KP=$P.transform(e=>({proxy:expectEvmAddress(e.proxy)})),ai=z.bigint().positive().max(re),VP=z.object({amount:ai,metadata:V.optional()}),QP=z.object({amount:ai}),Iq=n(g$1,f,m,c,b,a),kq=n(g$1,f,m,c,b,a),qq=n(a),vq=n(j$1,g$1,f,m,c,b,a),Aq=n(g$1,f,m,c,b,a);async function Oq(e,r={}){let t=l(r,GP),o="credentials"in t?await JP(e,t.credentials):await ZP(e,t);return e.webSockets.perpsSession.connect(o)}async function wq(e,r){let t=l(r,KP),o={type:"deleteProxy",args:{proxy:t.proxy}},n=["deleteProxy",[t.proxy]],s=go(),a=Date.now(),f$1=await eR(e,{salt:s,signedOp:n,timestamp:a}),P=await unwrap(e.perps.del("/v1/account/proxy",{json:{op:o,salt:s,sig:f$1,ts:a}}).andThen(y(PerpsDeleteProxyResponseSchema)));if(P.status==="err")throw new f(P.error??"Perps credentials revocation was rejected.",{status:200})}async function YP(e,r){let t=l(r,VP),{contracts:o}=e.environment,n=Pn(o.perpsDepositContract,o.collateralToken,t.amount,e.account.signer);return async function*(){return e.account.walletType===WalletType.EOA?$(yield iR(K(e.environment.chainId,n))):yield*await X(e,{calls:[n],metadata:t.metadata??`Deposit ${t.amount} of ${o.collateralToken} to Perps`})}.call(null)}function Lq(e,r){return YP(e,r).then(H(e.signer))}async function Mq(e,r){let t=l(r,QP),o=Math.floor(Date.now()/1e3),n=go(),s={type:"withdraw",args:{account:e.account.signer,token:e.environment.contracts.collateralToken,amount:t.amount.toString(),to:e.account.wallet}},a=await rR(e,{amount:t.amount,salt:n,timestamp:o}),f$1=await unwrap(e.perps.post("/v1/account/withdraw",{json:{op:s,salt:n,sig:a,ts:o}}).andThen(y(PerpsWithdrawResponseSchema)));if(f$1.status==="err")throw new f(f$1.error??"Perps withdrawal was rejected.",{status:200});if(f$1.withdrawalId===void 0)throw new b("Perps withdrawal response did not include a withdrawal ID.");return f$1.withdrawalId}async function ZP(e,r){let t=nR(),o=pi(t),n=e.account.signer,s=Date.now()+r.expiresIn,a=Date.now(),f=go(),P={args:{expiry:s,owner:n,proxy:o},type:"createProxy"},C=await XP(e,{expiresAt:s,proxy:o,salt:f,timestamp:a}),b={op:P,salt:f,sig:C,ts:a};r.label!==void 0&&(b.label=r.label);let _=await unwrap(e.perps.post("/v1/account/proxy",{json:b}).andThen(y(PerpsCreateProxyResponseSchema))),B={expiresAt:s,privateKey:t,proxy:o,secret:_.secret};return ii(e,B)}async function JP(e,r){return sR(r),ii(e,r)}async function ii(e,r){let t=await unwrap(e.perps.get("/v1/account/credentials",{headers:aR(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 XP(e,r){try{return await e.signer.signTypedData(oR({chainId:e.environment.chainId,...r}))}catch(t){throw m.fromError(t,"Could not sign the Perps proxy credentials request")}}async function eR(e,r){try{return await e.signer.signTypedData(eo({chainId:e.environment.chainId,op:r.signedOp,salt:r.salt,timestamp:r.timestamp}))}catch(t){throw m.fromError(t,"Could not sign the Perps operation request")}}async function rR(e,r){try{return await e.signer.signTypedData(tR({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 m.fromError(t,"Could not sign the Perps withdrawal request")}}function tR(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 oR(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 nR(){return expectPrivateKey(Secp256k1.randomPrivateKey(),"Generated invalid Perps proxy key.")}function pi(e){return expectEvmAddress(Address.fromPublicKey(Secp256k1.getPublicKey({privateKey:e})))}function sR(e){let r=pi(e.privateKey);if(!isSameEvmAddress(r,e.proxy))throw new a("Perps credentials private key does not match the proxy address.")}function aR(e){return {"POLYMARKET-PROXY":e.proxy,"POLYMARKET-SECRET":e.secret}}function iR(e){return {kind:"sendPerpsDepositTransaction",request:e}}function go(){let[e]=crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var di=(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))(di||{}),fR=z.enum(["CURRENT","INITIAL","TOKENS","CASHPNL","PERCENTPNL","TITLE","RESOLVING","PRICE","AVGPRICE"]),ui=z.enum(["ASC","DESC"]),yR=z.object({cursor:PaginationCursorSchema.optional(),user:z.string(),market:z.array(z.string()).optional(),eventId:z.array(z.number().int()).optional(),sizeThreshold:z.number().optional(),redeemable:z.boolean().optional(),mergeable:z.boolean().optional(),pageSize:w.max(500).default(20),sortBy:fR.optional(),sortDirection:ui.optional(),title:z.string().max(100).optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),$q=n(g$1,f,c,b,a);function Kq(e,r){let{cursor:t,pageSize:o,...n}=l(r,yR);return x(s=>{let a=W(s,o);return e.data.get("/positions",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListPositionsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var PR=z.enum(["REALIZEDPNL","TITLE","PRICE","AVGPRICE","TIMESTAMP"]),RR=z.object({cursor:PaginationCursorSchema.optional(),user:z.string(),market:z.array(z.string()).optional(),title:z.string().max(100).optional(),eventId:z.array(z.number().int()).optional(),pageSize:w.max(50).default(20),sortBy:PR.optional(),sortDirection:ui.optional()}).refine(e=>!(e.market&&e.eventId),{message:"Provide market or eventId, not both",path:["eventId"]}),Vq=n(g$1,f,c,b,a);function Qq(e,r){let{cursor:t,pageSize:o,...n}=l(r,RR);return x(s=>{let a=W(s,o);return e.data.get("/closed-positions",{params:G({...n,limit:a.pageSize,offset:a.offset})}).andThen(y(ListClosedPositionsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var gR=z.enum(di),ER=z.union([ComboConditionIdSchema,z.array(ComboConditionIdSchema)]),hR=z.object({cursor:PaginationCursorSchema.optional(),user:z.string(),pageSize:w.default(20),status:ComboPositionStatusSchema.optional(),sort:gR.optional(),conditionId:ER.optional(),updatedAfter:z.number().int().min(0).optional(),updatedBefore:z.number().int().min(0).optional()}),Yq=n(g$1,f,c,b,a);function Zq(e,r){let{cursor:t,pageSize:o,conditionId:n,...s}=l(r,hR);return x(a=>{let f=g({...s,limit:o,cursor:a},E({updatedAfter:"updatedAfter",updatedBefore:"updatedBefore"}));return SR(f,n),e.data.get("/v1/positions/combos",{params:f}).andThen(y(ListComboPositionsResponseSchema)).map(P=>{let C=P.pagination.nextCursor??void 0;return {items:P.combos,hasMore:C!==void 0,nextCursor:C}})},t)}function SR(e,r){r!==void 0&&e.append("market_id",Array.isArray(r)?r.join(","):r);}var TR=z.object({user:z.string(),market:z.array(z.string()).optional()}),Jq=n(g$1,f,c,b,a);async function Xq(e,r){let t=l(r,TR);return unwrap(e.data.get("/value",{params:G(t)}).andThen(y(FetchPortfolioValueResponseSchema)))}var xR=z.object({user:z.string()}),ev=n(g$1,f,c,b,a);async function rv(e,r){let t=l(r,xR);return unwrap(e.data.get("/traded",{params:G(t)}).andThen(y(TradedSchema)))}var CR=z.object({user:z.string()}),tv=n(g$1,f,c,b,a);async function ov(e,r){let t=l(r,CR);return unwrap(e.data.get("/v1/accounting/snapshot",{params:G(t)}).andThen(Uo))}var Pi=32,Ri=3n,fi=50,IR=(1n<<256n)-1n;function So(e){let r=AbiParameters.encode([{name:"legs",type:"uint256[]"}],[e]),t=Hash.keccak256(AbiParameters.encode([{name:"moduleId",type:"uint256"},{name:"data",type:"bytes"}],[Ri,r])),o=toComboConditionId(`0x03${t.slice(34)}0000000000000000000000000000`);return {conditionId:o,positionIds:[toPositionId(BigInt(`${o}00`).toString()),toPositionId(BigInt(`${o}01`).toString())]}}function gi(e){if(e.length===0||e.length>fi)throw new a(`Combo legs must include 1 to ${fi} position IDs`);let r=e.map(t=>{let o=hi(t),n=o.toString(16).padStart(Pi*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 Ei(e){let t=hi(e).toString(16).padStart(Pi*2,"0"),o=BigInt(`0x${t.slice(0,2)}`),n=Number.parseInt(t.slice(-2),16);if(o!==Ri)throw new a("Combo position ID must use the combinatorial module");if(n!==0&&n!==1)throw new a("Combo position ID must be a YES/NO position ID");return {conditionId:toComboConditionId(`0x${t.slice(0,-2)}`),outcomeIndex:n}}function hi(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>IR)throw new a("Position ID must be a uint256 value");return t}var Ti=z.object({amount:z.bigint().min(0n),conditionId:ConditionIdSchema,metadata:V.optional()}),qR=z.object({amount:z.bigint().positive(),legs:z.array(PositionIdSchema).min(1).max(50),metadata:V.optional()}),xi=z.array(PositionIdSchema).min(1).max(50).transform(gi),vR=z.object({amount:z.bigint().positive(),legs:xi,metadata:V.optional()}),AR=z.union([Ti.extend({legs:z.never().optional()}),qR.extend({conditionId:z.never().optional()})]),Ci=n(g$1,f,c,b,a),Cv=Ci,bv=Ci,bi=n(g$1,f,c,b,a),Iv=bi,kv=bi,Ii=n(g$1,f,c,b,a),qv=Ii,vv=Ii;async function ki(e,r){let t=l(r,Ti),o=await bo(e,{conditionId:t.conditionId}),n=Rn(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?$(yield To(K(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)}async function qi(e,r){let t=l(r,vR),o=Pt(e.environment.contracts.combinatorialModule,t.legs),n=So(t.legs),s=hn(e.environment.contracts.protocolV2Router,n.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?(await $(yield To(K(e.environment.chainId,o))).wait(),$(yield To(K(e.environment.chainId,s)))):yield*await X(e,{calls:[o,s],metadata:t.metadata??`Split ${t.amount} combo positions for condition ${n.conditionId}`})}.call(null)}async function OR(e,r){let t=l(r,AR);return t.legs!==void 0?qi(e,t):ki(e,t)}var vi=n(j$1,g$1,f,m,h,i,c,b,a),Av=vi,Ov=vi;function wv(e,r){return ki(e,r).then(H(e.signer))}function Lv(e,r){return qi(e,r).then(H(e.signer))}function Mv(e,r){return OR(e,r).then(H(e.signer))}var Ai=z.object({amount:z.union([z.bigint().positive(),z.literal("max")]),conditionId:ConditionIdSchema,metadata:V.optional()}),wR=z.object({amount:z.union([z.bigint().positive(),z.literal("max")]),legs:z.array(PositionIdSchema).min(1).max(50),metadata:V.optional()}),LR=z.object({amount:z.union([z.bigint().positive(),z.literal("max")]),legs:xi,metadata:V.optional()}),MR=z.union([Ai.extend({legs:z.never().optional()}),wR.extend({conditionId:z.never().optional()})]);async function Oi(e,r){let t=l(r,Ai),o=await bo(e,{conditionId:t.conditionId}),n=ft(await e.rpc.ethCall(mt(o.positionErc1155Address,e.account.wallet,o.tokenIds))),s=Di(o.conditionId,n,t.amount),a=gn(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId,s);return async function*(){return e.account.walletType===WalletType.EOA?$(yield xo(K(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)}async function wi(e,r){let t=l(r,LR),o=Pt(e.environment.contracts.combinatorialModule,t.legs),n=So(t.legs),s=ft(await e.rpc.ethCall(mt(e.environment.contracts.positionManager,e.account.wallet,n.positionIds))),a=Di(n.conditionId,s,t.amount),f=Sn(e.environment.contracts.protocolV2Router,n.conditionId,a);return async function*(){return e.account.walletType===WalletType.EOA?(await $(yield xo(K(e.environment.chainId,o))).wait(),$(yield xo(K(e.environment.chainId,f)))):yield*await X(e,{calls:[o,f],metadata:t.metadata??`Merge ${a} combo positions for condition ${n.conditionId}`})}.call(null)}async function FR(e,r){let t=l(r,MR);return t.legs!==void 0?wi(e,t):Oi(e,t)}var Li=n(j$1,g$1,f,m,h,i,c,b,a),Fv=Li,Bv=Li;function Uv(e,r){return Oi(e,r).then(H(e.signer))}function Dv(e,r){return wi(e,r).then(H(e.signer))}function zv(e,r){return FR(e,r).then(H(e.signer))}var Mi=z.object({conditionId:ConditionIdSchema,marketId:z.never().optional(),amount:z.never().optional(),positionId:z.never().optional(),metadata:V.optional()}),Fi=z.object({conditionId:z.never().optional(),marketId:MarketIdSchema,amount:z.never().optional(),positionId:z.never().optional(),metadata:V.optional()}),BR=z.union([Mi,Fi]),Bi=z.object({positionId:PositionIdSchema,conditionId:z.never().optional(),marketId:z.never().optional(),metadata:V.optional()}),UR=z.union([Mi,Fi,Bi]);async function DR(e,r){let t=l(r,BR),o=await bo(e,t.conditionId!==void 0?{conditionId:t.conditionId,closed:true}:{marketId:t.marketId,closed:true}),n=En(o.adapterAddress,e.environment.contracts.collateralToken,o.conditionId);return async function*(){return e.account.walletType===WalletType.EOA?$(yield Ui(K(e.environment.chainId,n))):yield*await X(e,{calls:[n],metadata:t.metadata??`Redeem positions for market ${o.marketId} (condition ${o.conditionId})`})}.call(null)}async function zR(e,r){let t=l(r,Bi),o=Ei(t.positionId),n=yn(await e.rpc.ethCall(fn(e.environment.contracts.positionManager,e.account.wallet,t.positionId)));if(n===0n)throw new a("Combo position has no balance to redeem");let s=Tn(e.environment.contracts.protocolV2Router,o.conditionId,o.outcomeIndex,n);return async function*(){return e.account.walletType===WalletType.EOA?$(yield Ui(K(e.environment.chainId,s))):yield*await X(e,{calls:[s],metadata:t.metadata??`Redeem combo position ${t.positionId}`})}.call(null)}async function jR(e,r){let t=l(r,UR);return t.positionId!==void 0?zR(e,t):DR(e,t)}var jv=n(j$1,g$1,f,m,c,b,a);function Wv(e,r){return jR(e,r).then(H(e.signer))}function To(e){return {kind:"sendSplitPositionTransaction",request:e}}function xo(e){return {kind:"sendMergePositionsTransaction",request:e}}function Ui(e){return {kind:"sendRedeemPositionsTransaction",request:e}}async function bo(e,r){let t=r.conditionId!==void 0?`condition ${r.conditionId}`:`market ${r.marketId}`,o=await as(e,r.conditionId!==void 0?{conditionIds:[r.conditionId],closed:r.closed,pageSize:1}:{ids:[WR(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=_R(n,t);return {...s,adapterAddress:s.negRisk?e.environment.contracts.negRiskCollateralAdapter:e.environment.contracts.collateralAdapter,positionErc1155Address:s.negRisk?e.environment.contracts.negRiskAdapter:e.environment.contracts.conditionalTokens}}function WR(e){let r=Number(e);if(!Number.isInteger(r))throw new a(`Market ID must be an integer, received ${e}`);return r}function _R(e,r){if(!isPresent(e.conditionId))throw new b(`Missing condition ID for ${r}`);if(!isPresent(e.state.negRisk))throw new b(`Missing negative-risk flag for ${r}`);let t=e.outcomes.yes.tokenId,o=e.outcomes.no.tokenId;if(!isPresent(t)||!isPresent(o))throw new b(`Missing market token IDs for ${r}`);return {marketId:e.id,conditionId:e.conditionId,negRisk:e.state.negRisk,tokenIds:[t,o]}}function Di(e,r,t){let o=HR(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 HR(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 VR=z.object({address:z.string()}),Yv=n(g$1,f,c,b,a);async function Zv(e,r){let t=l(r,VR);return unwrap(e.gamma.get("/public-profile",{params:g(t,E())}).andThen(y(PublicProfileSchema)).orElse(o=>o instanceof f&&o.status===404?ok(null):err(o)))}var qo=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;}},pA=n(e,qo,m,h,c,a),vo=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;}},cA=n(e,vo,h,c),Ao=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;}},dA=n(e,Ao,h,c),uA=n(e,c);async function lA(e){return e.webSockets.rfqQuoter.connect()}var wo="/v1/builder/rfq/requests",eg=3e4,rg=3e4,tg=3e4,og=500,ng=3e4,sg=1e3,ag="0x0000000000000000000000000000000000000000000000000000000000000000",Oe=class extends PolymarketError{name="RfqRequestRejectedError";status;code;constructor(r,t){super(r,t),this.status=t.status,this.code=t.code;}};function Lo(e){return e instanceof f?new Oe(e.message,{cause:e,code:Qi(e.code),status:e.status}):e}var ig=new Set(Object.values(RfqRejectionCode));function Qi(e){return e!==void 0&&ig.has(e)?e:RfqRejectionCode.RequestFailed}function Yi(e){if(!e.hasBuilderApiKey)throw new a("Combo RFQ requests require a Builder API Key in the client configuration, via builderApiKey(...) or remoteBuilderSigning(...).")}var Hi=z.array(z.string().regex(/^\d+$/,"Leg position IDs must be numeric strings.").transform(e=>toPositionId(BigInt(e).toString()))).min(2,"Combo requests require at least 2 legs.").max(50,"Combo requests allow at most 50 legs.").refine(e=>new Set(e).size===e.length,"Leg position IDs must not contain duplicates.").transform(e=>[...e].sort((r,t)=>{let o=BigInt(r),n=BigInt(t);return o<n?-1:o>n?1:0})),st=z.union([z.number(),z.string()]).transform((e,r)=>{let t=/^(\d+)(?:\.(\d*))?$/.exec(String(e));if(t===null)return r.addIssue({code:"custom",message:"Value must be a valid decimal."}),z.NEVER;let[,o="",n=""]=t;if(n.length>6)return r.addIssue({code:"custom",message:"Value must have at most 6 decimal places."}),z.NEVER;let s=pg(o,n);return s<=0n?(r.addIssue({code:"custom",message:"Value must be greater than 0."}),z.NEVER):s.toString()});function pg(e,r){return BigInt(e)*1000000n+BigInt(r.padEnd(6,"0"))}var cg=z.discriminatedUnion("direction",[z.object({amount:st,direction:z.literal(OrderSide.BUY),legPositionIds:Hi,side:z.literal(RfqSide.Yes).optional()}),z.object({direction:z.literal(OrderSide.SELL),legPositionIds:Hi,side:z.literal(RfqSide.Yes).optional(),size:st})]),mA=n(g$1,Oe,c,b,a);async function fA(e,r){let t=l(r,cg);Yi(e);let o=sr(e.account),n={direction:t.direction===OrderSide.BUY?RfqDirection.Buy:RfqDirection.Sell,leg_position_ids:t.legPositionIds,maker_address:o.maker,requested_size:t.direction===OrderSide.BUY?{unit:RfqRequestedSizeUnit.Notional,value_e6:t.amount}:{unit:RfqRequestedSizeUnit.Shares,value_e6:t.size},side:RfqSide.Yes,signature_type:o.signatureType,signer_address:o.signer},s=await unwrap(e.builderGateway.post(wo,{json:n,timeout:eg}).andThen(y(BuilderRfqCreateResponseSchema)).mapErr(Lo));if("quote"in s){dg(s,n);let a=s.request.direction===RfqDirection.Buy?OrderSide.BUY:OrderSide.SELL,f={blendedPrice:s.quote.blendedPrice,builderCode:s.builderCode,expiresAt:s.expiresAt,makerAmount:s.quote.makerAmount,positionId:s.request.yesPositionId,quoteId:s.quote.quoteId,rfqId:s.rfqId,takerAmount:s.quote.takerAmount,totalRequired:s.quote.totalRequired};if(a===OrderSide.SELL){if(s.quote.netReceive===void 0)throw new b(`SELL quote for RFQ ${s.rfqId} omitted net sell proceeds.`);return {quote:{...f,direction:a,netReceive:s.quote.netReceive},rfqId:s.rfqId}}return {quote:{...f,direction:a},rfqId:s.rfqId}}return ug(s)}function dg(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 ug(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 Oe(e.error?.message??"The combo quote request failed.",{code:Qi(e.error?.code),status:200,...e.error===void 0?{}:{cause:e.error}})}}var lg=OrderSideSchema,mg=z.object({blendedPrice:z.string(),builderCode:z.string().regex(/^0x[0-9a-fA-F]{64}$/,"builderCode must be a 32-byte hex string.").transform(toBuilderCode),direction:lg,expiresAt:z.number().int().nonnegative(),makerAmount:st.transform(toBaseUnits),netReceive:z.string().optional(),positionId:z.string().regex(/^\d+$/,"positionId must be a numeric string.").transform(toPositionId),quoteId:z.string().min(1).transform(toRfqQuoteId),rfqId:z.string().min(1).transform(toRfqId),takerAmount:st.transform(toBaseUnits),totalRequired:z.string()}),yA=n(j$1,g$1,Oe,m,h,c,b,a);async function PA(e,r){let t=l(r,mg);Yi(e);let o=zs({chainId:e.environment.chainId,exchange:e.environment.contracts.exchangeV3}),n=Pg(e,t),s=await Rg(e,o,n),a={quote_id:t.quoteId,signed_order:s};function f(){return e.builderGateway.post(`${wo}/${encodeURIComponent(t.rfqId)}/accept`,{json:a,timeout:rg}).andThen(y(BuilderRfqStatusResponseSchema))}let P=await f();if(P.isErr()&&(P.error instanceof c||P.error instanceof b)&&(P=await f()),P.isErr()){let B=fg(t.rfqId,P.error);if(B!==void 0)return B;throw Lo(P.error)}let C=P.value,b$1=P.value.takerOrderHash,_=Date.now()+tg;for(;C.status===RfqStatus.AwaitingMakerConfirmation;){if(Date.now()>=_)throw new h(`Timed out waiting for the acceptance outcome of RFQ ${t.rfqId}.`);await delay(og),C=await Zi(e,{rfqId:t.rfqId});}return C.status===RfqStatus.Failed||C.status===RfqStatus.Expired||C.status===RfqStatus.Canceled?{reason:yg(C.status,C.error?.code),rfqId:C.rfqId,status:"failed",...C.error===void 0?{}:{error:C.error}}:{rfqId:C.rfqId,status:"executing",...b$1===void 0?{}:{takerOrderHash:b$1}}}function fg(e,r){if(r instanceof f&&r.code===RfqKnownErrorCode.ExpiredRfq)return {error:{code:RfqKnownErrorCode.ExpiredRfq,message:r.message},reason:ComboAcceptFailureReason.AcceptanceWindowExpired,rfqId:e,status:"failed"}}function yg(e,r){return e===RfqStatus.Expired||r===RfqKnownErrorCode.ExpiredRfq?ComboAcceptFailureReason.AcceptanceWindowExpired:r===RfqKnownErrorCode.MakerDeclined?ComboAcceptFailureReason.MakerDeclined:ComboAcceptFailureReason.ExecutionFailed}function Pg(e,r){let t=sr(e.account);return {builder:r.builderCode,maker:t.maker,makerAmount:r.makerAmount,metadata:ag,salt:js().toString(),side:$t(r.direction),signatureType:t.signatureType,signer:t.signer,takerAmount:r.takerAmount,timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:r.positionId}}async function Rg(e,r,t){let o;try{o=await e.signer.signTypedData(_r({domain:r,order:t}));}catch(n){throw n instanceof j$1?n:m.fromError(n,"Could not sign the combo quote acceptance order.")}return {...t,signature:Hr({domain:r,order:t,signature:o})}}var gg=z.object({pollingIntervalMs:z.number().int().positive().optional(),rfqId:z.string().min(1).transform(toRfqId),timeoutMs:z.number().int().positive().optional()}),RA=n(g$1,Oe,h,c,b,a);async function gA(e,r){let t=l(r,gg),o=t.timeoutMs??ng,n=t.pollingIntervalMs??sg,s=Date.now()+o;for(;;){let a=await Zi(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 h(`Timed out after ${o}ms waiting for RFQ ${t.rfqId} to reach a terminal state.`);await delay(n);}}var Eg=z.object({rfqId:z.string().min(1).transform(toRfqId)}),EA=n(g$1,Oe,c,b,a);function Zi(e,r){let t=l(r,Eg);return unwrap(e.builderGateway.get(`${wo}/${encodeURIComponent(t.rfqId)}`).andThen(y(BuilderRfqStatusResponseSchema)).mapErr(Lo))}var Ji=(f=>(f.Volume="volume",f.Volume24Hr="volume_24hr",f.Liquidity="liquidity",f.Competitive="competitive",f.ClosedTime="closed_time",f.StartDate="start_date",f.EndDate="end_date",f))(Ji||{}),Tg=z.object({q:z.string().trim().min(1),ascending:z.boolean().optional(),cache:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),eventsStatus:z.string().min(1).optional(),eventsTag:z.array(z.string()).optional(),excludeTagIds:z.array(z.number().int()).optional(),keepClosedMarkets:z.number().int().optional(),optimized:z.boolean().optional(),pageSize:w.default(10),presets:z.array(z.string()).optional(),recurrence:z.enum(["daily","weekly","monthly"]).optional(),searchProfiles:z.boolean().optional(),searchTags:z.boolean().optional(),sort:z.enum(Ji).optional()}),jA=n(g$1,f,c,b,a);function WA(e,r){let{cursor:t,pageSize:o,...n}=l(r,Tg);return x(s=>{let a=W(s,o);return e.gamma.get("/public-search",{params:g({...n,limitPerType:a.pageSize,page:a.offset},E({excludeTagIds:"exclude_tag_id"}))}).andThen(y(PublicSearchResponseSchema)).map(f=>({items:xg(f),hasMore:f.pagination?.hasMore??false,totalCount:f.pagination?.totalResults??void 0,nextCursor:f.pagination?.hasMore?j({offset:a.offset+1,pageSize:a.pageSize}):void 0}))},t??j({offset:1,pageSize:o}),{events:[],profiles:[],tags:[]})}function xg(e){return {events:e.events??[],profiles:e.profiles??[],tags:e.tags??[]}}var qg=z.object({ascending:z.boolean().optional(),closed:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),excludeEvents:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),pageSize:w.max(50).default(20),recurrence:z.enum(["daily","weekly","monthly"]).optional(),slug:z.array(z.string()).optional()}),vg=z.object({id:z.string(),locale:z.string().optional()}),JA=n(g$1,f,c,b,a);function XA(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,qg);return x(s=>{let a=W(s,o);return e.gamma.get("/series",{params:g({...n,limit:a.pageSize,offset:a.offset},E())}).andThen(y(ListSeriesResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var eO=n(g$1,f,c,b,a);async function rO(e,r){let t=l(r,vg);return unwrap(e.gamma.get(`series/${t.id}`,{params:g({locale:t.locale},E())}).andThen(y(SeriesSchema)))}var iO=n(g$1,f,c,b);async function pO(e){return unwrap(e.gamma.get("/sports").andThen(y(ListSportsMetadataResponseSchema)))}var cO=n(g$1,f,c,b);async function dO(e){return unwrap(e.gamma.get("/sports/market-types").andThen(y(SportsMarketTypesResponseSchema)))}var RO=n(c,a),Mg=z.object({topic:z.literal("prices.crypto.chainlink.twap"),windowSeconds:z.union([z.literal(30),z.literal(60)]),symbols:z.array(z.string()).optional()});async function gO(e,r){for(let o of r)o.topic==="prices.crypto.chainlink.twap"&&l(o,Mg);let t=await Promise.all(r.map(o=>Fg(e,o)));return Bg(t)}function Fg(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 Bg(e){let r;async function t(){r===void 0&&(r=Promise.all(e.map(n=>n.close())).then(()=>{})),await r;}let o=Lg(...e);return {close:t,[Symbol.asyncIterator](){return o[Symbol.asyncIterator]()}}}var zg=z.object({ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),includeTemplate:z.boolean().optional(),isCarousel:z.boolean().optional(),locale:z.string().optional(),order:z.string().optional(),pageSize:w.max(100).default(20)}),jg=z.union([z.object({id:z.string(),includeTemplate:z.boolean().optional(),locale:z.string().optional()}),z.object({slug:z.string(),locale:z.string().optional()})]),Wg=z.object({id:z.string(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),_g=z.object({slug:z.string()}),Hg=z.object({id:z.string(),locale:z.string().optional(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),Ng=z.object({locale:z.string().optional(),slug:z.string(),omitEmpty:z.boolean().optional(),status:z.enum(["active","closed","all"]).optional()}),vO=n(g$1,f,c,b,a);function AO(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,zg);return x(s=>{let a=W(s,o);return e.gamma.get("/tags",{params:g({...n,limit:a.pageSize,offset:a.offset},E())}).andThen(y(ListTagsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var OO=n(g$1,f,c,b,a);async function wO(e,r){let t=l(r,jg);return "id"in t?unwrap(e.gamma.get(`tags/${t.id}`,{params:g({includeTemplate:t.includeTemplate,locale:t.locale},E())}).andThen(y(TagSchema))):unwrap(e.gamma.get(`tags/slug/${t.slug}`,{params:g({locale:t.locale},E())}).andThen(y(TagSchema)))}var LO=n(g$1,f,c,b,a);async function MO(e,r){if("id"in r){let o=l(r,Wg);return unwrap(e.gamma.get(`tags/${o.id}/related-tags`,{params:g({omitEmpty:o.omitEmpty,status:o.status},E())}).andThen(y(ListRelatedTagsResponseSchema)))}let t=l(r,_g);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags`).andThen(y(ListRelatedTagsResponseSchema)))}var FO=n(g$1,f,c,b,a);async function BO(e,r){if("id"in r){let o=l(r,Hg);return unwrap(e.gamma.get(`tags/${o.id}/related-tags/tags`,{params:g({locale:o.locale,omitEmpty:o.omitEmpty,status:o.status},E())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}let t=l(r,Ng);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags/tags`,{params:g({locale:t.locale,omitEmpty:t.omitEmpty,status:t.status},E())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}var Kg=z.object({abbreviation:z.array(z.string()).optional(),ascending:z.boolean().optional(),cursor:PaginationCursorSchema.optional(),league:z.array(z.string()).optional(),name:z.array(z.string()).optional(),order:z.string().optional(),pageSize:w.max(100).default(20),providerId:z.array(z.number().int()).optional()}),$O=n(g$1,f,c,b,a);function KO(e,r={}){let{cursor:t,pageSize:o,...n}=l(r,Kg);return x(s=>{let a=W(s,o);return e.gamma.get("/teams",{params:g({...n,limit:a.pageSize,offset:a.offset},E({providerId:"provider_id"}))}).andThen(y(ListTeamsResponseSchema)).map(f=>{let P=f.length>=a.pageSize;return {items:f,hasMore:P,nextCursor:P?j({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var Qg=z.object({amount:z.bigint(),metadata:V.optional(),recipientAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),nw=n(a);async function Yg(e,r){let t=l(r,Qg);return async function*(){return e.account.walletType===WalletType.EOA?$(yield Zg(K(e.environment.chainId,yt(t.tokenAddress,t.recipientAddress,t.amount)))):yield*await X(e,{calls:[yt(t.tokenAddress,t.recipientAddress,t.amount)],metadata:t.metadata??`Transfer ${t.amount} of ${t.tokenAddress} to ${t.recipientAddress}`})}.call(null)}var sw=n(j$1,g$1,f,m,c,b,a);function aw(e,r){return Yg(e,r).then(H(e.signer))}function Zg(e){return {kind:"sendErc20TransferTransaction",request:e}}
2
- export{Xo as $,AS as $a,ex as $b,Lt as $c,Tq as $d,Dv as $e,MO as $f,vh as A,tS as Aa,Gn as Ab,PC as Ac,JI as Ad,Tn as B,V as Ba,hT as Bb,RC as Bc,Fm as Bd,Ah as C,oS as Ca,$n as Cb,OC as Cc,XI as Cd,Ci as Ce,Pt as D,nS as Da,ST as Db,as as Dc,ek as Dd,Cv as De,xn as E,pd as Ea,Kn as Eb,wC as Ec,Nr as Ed,bv as Ee,Cn as F,sS as Fa,TT as Fb,LC as Fc,ra as Fd,bi as Fe,l as G,X as Ga,xT as Gb,MC as Gc,ta as Gd,Iv as Ge,zo as H,St as Ha,CT as Hb,FC as Hc,oa as Hd,kv as He,PE as I,Tt as Ia,bT as Ib,BC as Ic,Gr as Id,Ii as Ie,sr as J,xt as Ja,IT as Jb,UC as Jc,$r as Jd,qv as Je,Ji as Jf,Ko as K,Ct as Ka,Or as Kb,DC as Kc,Kr as Kd,vv as Ke,jA as Kf,Vo as L,bt as La,kT as Lb,zC as Lc,Wa as Ld,ki as Le,WA as Lf,vE as M,It as Ma,qT as Mb,jC as Mc,Na as Md,qi as Me,JA as Mf,AE as N,aS as Na,vT as Nb,WC as Nc,$a as Nd,OR as Ne,XA as Nf,OE as O,ir as Oa,AT as Ob,_C as Oc,ei as Od,vi as Oe,eO as Of,wE as P,RS as Pa,OT as Pb,HC as Pc,uq as Pd,Av as Pe,rO as Pf,LE as Q,hd as Qa,wT as Qb,ZC as Qc,lq as Qd,Ov as Qe,iO as Qf,ME as R,gS as Ra,LT as Rb,JC as Rc,mq as Rd,wv as Re,pO as Rf,FE as S,Ln as Sa,MT as Sb,XC as Sc,fq as Sd,Lv as Se,cO as Sf,Jo as T,ES as Ta,FT as Tb,eb as Tc,yq as Td,Mv as Te,dO as Tf,BE as U,Td as Ua,BT as Ub,rb as Uc,PP as Ud,Oi as Ue,RO as Uf,UE as V,hS as Va,UT as Vb,tb as Vc,Pq as Vd,wi as Ve,gO as Vf,DE as W,Mn as Wa,DT as Wb,ob as Wc,Rq as Wd,FR as We,vO as Wf,zE as X,SS as Xa,zT as Xb,nb as Xc,gq as Xd,Li as Xe,AO as Xf,jE as Y,xd as Ya,jT as Yb,lb as Yc,Eq as Yd,Fv as Ye,OO as Yf,dt as Z,TS as Za,WT as Zb,mb as Zc,hq as Zd,Bv as Ze,wO as Zf,WE as _,xS as _a,_T as _b,jl as _c,Sq as _d,Uv as _e,LO as _f,re as a,_E as aa,vd as ab,rx as ac,Tb as ad,xq as ae,zv as af,FO as ag,Sh as b,HE as ba,OS as bb,tx as bc,xb as bd,Cq as be,DR as bf,BO as bg,Cr as c,NE as ca,Ad as cb,Au as cc,Dr as cd,bq as ce,zR as cf,$O as cg,dn as d,GE as da,wS as db,ox as dc,Cb as dd,Iq as de,jR as df,KO as dg,un as e,$E as ea,LS as eb,nx as ec,_r as ed,kq as ee,jv as ef,nw as eg,br as f,KE as fa,MS as fb,Hr as fd,qq as fe,Wv as ff,Yg as fg,ln as g,VE as ga,FS as gb,Rx as gc,zs as gd,vq as ge,Yv as gf,sw as gg,mn as h,QE as ha,BS as hb,gx as hc,oI as hd,Aq as he,Zv as hf,aw as hg,fn as i,YE as ia,US as ib,Ex as ic,nI as id,Oq as ie,qo as if,yn as j,ZE as ja,DS as jb,hx as jc,js as jd,wq as je,pA as jf,mt as k,JE as ka,zS as kb,Sx as kc,$t as kd,YP as ke,vo as kf,ft as l,XE as la,jS as lb,Tx as lc,Qt as ld,Lq as le,cA as lf,Th as m,ch as ma,WS as mb,Ux as mc,xm as md,Mq as me,Ao as mf,yt as n,dh as na,_S as nb,Dx as nc,Yt as nd,di as ne,dA as nf,xh as o,uh as oa,HS as ob,zx as oc,Cm as od,$q as oe,uA as of,Pn as p,lh as pa,XS as pb,jx as pc,Zt as pd,Kq as pe,lA as pf,Ch as q,mh as qa,eT as qb,Wx as qc,EI as qd,Vq as qe,Oe as qf,bh as r,fh as ra,uT as rb,_x as rc,hI as rd,Qq as re,mA as rf,Rn as s,lT as sb,Hx as sc,SI as sd,Yq as se,fA as sf,Ih as t,Mh as ta,mT as tb,Nx as tc,TI as td,Zq as te,yA as tf,gn as u,$ as ua,fT as ub,rC as uc,AI as ud,Jq as ue,PA as uf,En as v,zh as va,yT as vb,tC as vc,OI as vd,Xq as ve,RA as vf,kh as w,bn as wa,PT as wb,oC as wc,QI as wd,ev as we,gA as wf,hn as x,eS as xa,RT as xb,nC as xc,Mm as xd,rv as xe,EA as xf,qh as y,ht as ya,gT as yb,sC as yc,YI as yd,tv as ye,Zi as yf,Sn as z,rS as za,ET as zb,aC as zc,ZI as zd,ov as ze};//# sourceMappingURL=chunk-DB2YMGIT.js.map
3
- //# sourceMappingURL=chunk-DB2YMGIT.js.map