@polymarket/client 0.0.0-canary-20260421120448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,54 @@
1
+ import { TransactionId } from '@polymarket/bindings';
2
+ import { HexString, EvmAddress, TxHash } from '@polymarket/types';
3
+
4
+ type TypedDataField = {
5
+ name: string;
6
+ type: string;
7
+ };
8
+ type TypedData = Record<string, readonly TypedDataField[]>;
9
+ type TypedDataDomain = {
10
+ chainId?: number;
11
+ name?: string;
12
+ salt?: HexString;
13
+ verifyingContract?: EvmAddress;
14
+ version?: string;
15
+ };
16
+ type TypedDataPayload = {
17
+ domain: TypedDataDomain;
18
+ message: Record<string, unknown>;
19
+ primaryType: string;
20
+ types: TypedData;
21
+ };
22
+ interface ApiKeyAuthorization {
23
+ }
24
+ type TransactionOutcome = {
25
+ /**
26
+ * The hash of the settled transaction.
27
+ */
28
+ transactionHash: TxHash;
29
+ /**
30
+ * The unique identifier of the settled transaction when submitted through the Polymarket API,
31
+ * or null if the transaction was submitted directly to the blockchain.
32
+ */
33
+ transactionId: TransactionId | null;
34
+ };
35
+ interface TransactionHandle {
36
+ /**
37
+ * The hash of the submitted transaction, or null if the transaction is pending submission.
38
+ */
39
+ readonly transactionHash: TxHash | null;
40
+ /**
41
+ * The unique identifier of the submitted transaction when submitted through the Polymarket API,
42
+ * or null if the transaction was submitted directly to the blockchain.
43
+ */
44
+ readonly transactionId: TransactionId | null;
45
+ /**
46
+ * Waits for the submitted transaction to settle.
47
+ *
48
+ * @throws {@link WaitForTransactionError}
49
+ * Thrown when polling times out, the transaction reaches a terminal failure state, or a later read returns an unexpected response.
50
+ */
51
+ wait(): Promise<TransactionOutcome>;
52
+ }
53
+
54
+ export type { ApiKeyAuthorization as A, TypedDataPayload as T, TransactionHandle as a };
package/dist/viem.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { WalletClient } from 'viem';
2
+ import { A as AuthenticateWith, C as CompleteWith } from './types-BcwWqAsH.js';
3
+ import '@polymarket/bindings';
4
+ import '@polymarket/types';
5
+ import '@polymarket/bindings/relayer';
6
+ import 'zod';
7
+ import '@polymarket/bindings/clob';
8
+ import '@polymarket/bindings/gamma';
9
+ import '@polymarket/bindings/data';
10
+ import 'ox';
11
+
12
+ /**
13
+ * Drives an authentication workflow with a viem wallet client.
14
+ *
15
+ * @throws {@link AuthenticateWithError}
16
+ * Thrown when the required wallet signature is rejected or cannot be produced.
17
+ */
18
+ declare function authenticateWith(walletClient: WalletClient): AuthenticateWith;
19
+ /**
20
+ * Drives a workflow with a viem wallet client.
21
+ *
22
+ * Supports the current non-auth workflow set, including order signing,
23
+ * approvals, transfers, redemptions, and gasless wallet preparation.
24
+ *
25
+ * @throws {@link CompleteWithError}
26
+ * Thrown when the required wallet signature or submission is rejected or cannot be produced.
27
+ */
28
+ declare function completeWith(walletClient: WalletClient): CompleteWith;
29
+
30
+ export { authenticateWith, completeWith };
package/dist/viem.js ADDED
@@ -0,0 +1,2 @@
1
+ import {j,h as h$1,g as g$1,f,c}from'./chunk-X2E5YUTB.js';import {invariant,expectEvmAddress,expectEvmSignature,expectTxHash}from'@polymarket/types';import {hashTypedData,UserRejectedRequestError,TransactionExecutionError,WaitForTransactionReceiptTimeoutError}from'viem';import {waitForTransactionReceipt}from'viem/actions';function g(t){return t.account!==void 0}function D(t){invariant(g(t),"Wallet client with account is required");let a=t.account,e=expectEvmAddress(typeof t.account=="string"?t.account:t.account.address);return async function(r){let n=await r.next();for(;!n.done;)try{switch(n.value.kind){case "requestAddress":n=await r.next(e);break;case "signAuthMessage":n=await r.next(expectEvmSignature(await x(t,{account:a,...n.value.payload})));break}}catch(s){n=await r.throw(s);}return n.value}}function k(t){invariant(g(t),"Wallet client with account is required");let a=t.account,e=expectEvmAddress(typeof t.account=="string"?t.account:t.account.address);return async function(r){let n=await r.next();for(;!n.done;)try{switch(n.value.kind){case "sendErc20ApprovalTransaction":case "sendErc1155ApprovalForAllTransaction":case "sendErc20TransferTransaction":case "sendMergePositionsTransaction":case "sendRedeemPositionsTransaction":case "sendSplitPositionTransaction":{let{chainId:s,...v}=n.value.request;await P(t,s);let w=await H(t,{account:a,...v});n=await r.next(new h(w,t));break}case "requestAddress":n=await r.next(e);break;case "signGaslessTypedData":case "signOrder":n=await r.next(expectEvmSignature(await x(t,{account:a,...n.value.payload})));break;case "signGaslessMessage":n=await r.next(expectEvmSignature(await S(t,{account:a,message:{raw:hashTypedData(n.value.payload)}})));break}}catch(s){n=await r.throw(s);}return n.value}}async function H(t,a){try{let e=await t.sendTransaction(a);return expectTxHash(e)}catch(e){d(e);}}async function P(t,a){try{let e=t.chain?.id??await t.getChainId();if(e!==a)throw new j(`Wallet client is connected to chain ${e}, expected ${a}`)}catch(e){throw e instanceof j?e:j.fromError(e,"Could not resolve wallet client chain ID")}}async function x(t,a){try{return await t.signTypedData(a)}catch(e){d(e);}}async function S(t,a){try{return await t.signMessage(a)}catch(e){d(e);}}function d(t){if(t instanceof UserRejectedRequestError)throw h$1.fromError(t);if(t instanceof TransactionExecutionError){let a=t.walk(e=>e instanceof UserRejectedRequestError);if(a)throw h$1.fromError(a)}throw j.fromError(t)}var h=class{transactionId=null;#t;#a;constructor(a,e){this.#t=expectTxHash(a),this.#a=e;}get transactionHash(){return this.#t}async wait(){try{let a=await waitForTransactionReceipt(this.#a,{hash:this.#t}),e=expectTxHash(a.transactionHash);if(this.#t=e,a.status==="reverted")throw new g$1(`Transaction ${e} reverted`);return {transactionHash:e,transactionId:null}}catch(a){throw a instanceof WaitForTransactionReceiptTimeoutError?new f(`Timed out waiting for transaction ${this.#t} to settle`,{cause:a}):c.fromError(a)}}};export{D as authenticateWith,k as completeWith};//# sourceMappingURL=viem.js.map
2
+ //# sourceMappingURL=viem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/viem.ts"],"names":["isWalletClientWithAccount","walletClient","authenticateWith","invariant","account","address","expectEvmAddress","workflow","result","expectEvmSignature","signTypedData","error","completeWith","chainId","request","assertChainId","hash","sendTransaction","DirectTransactionHandle","signMessage","hashTypedData","expectTxHash","throwSigningWorkflowError","expectedChainId","actualChainId","SigningError","UserRejectedRequestError","CancelledSigningError","TransactionExecutionError","rejected","err","#transactionHash","#walletClient","transactionHash","receipt","waitForTransactionReceipt","TransactionFailedError","WaitForTransactionReceiptTimeoutError","TimeoutError","TransportError"],"mappings":"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","file":"viem.js","sourcesContent":["import {\n expectEvmAddress,\n expectEvmSignature,\n expectTxHash,\n invariant,\n type TxHash,\n} from '@polymarket/types';\nimport {\n type Account,\n type Chain,\n type Hash,\n hashTypedData,\n type SendTransactionParameters,\n type SendTransactionRequest,\n TransactionExecutionError,\n type Transport,\n UserRejectedRequestError,\n WaitForTransactionReceiptTimeoutError,\n type WalletClient,\n} from 'viem';\nimport { waitForTransactionReceipt } from 'viem/actions';\nimport {\n CancelledSigningError,\n SigningError,\n TimeoutError,\n TransactionFailedError,\n TransportError,\n} from './errors';\nimport type { TransactionHandle } from './types';\nimport type { AuthenticateWith, CompleteWith } from './workflow';\n\nfunction isWalletClientWithAccount(\n walletClient: WalletClient,\n): walletClient is WalletClient<Transport, Chain, Account> {\n return walletClient.account !== undefined;\n}\n\n/**\n * Drives an authentication workflow with a viem wallet client.\n *\n * @throws {@link AuthenticateWithError}\n * Thrown when the required wallet signature is rejected or cannot be produced.\n */\nexport function authenticateWith(walletClient: WalletClient): AuthenticateWith {\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 async function authenticate(workflow) {\n let result = await workflow.next();\n\n while (!result.done) {\n try {\n switch (result.value.kind) {\n case 'requestAddress':\n result = await workflow.next(address);\n break;\n case 'signAuthMessage':\n result = await workflow.next(\n expectEvmSignature(\n await signTypedData(walletClient, {\n account,\n ...result.value.payload,\n }),\n ),\n );\n break;\n }\n } catch (error) {\n result = await workflow.throw(error);\n }\n }\n\n return result.value;\n };\n}\n\n/**\n * Drives a workflow with a viem wallet client.\n *\n * Supports the current non-auth workflow set, including order signing,\n * approvals, transfers, redemptions, and gasless wallet preparation.\n *\n * @throws {@link CompleteWithError}\n * Thrown when the required wallet signature or submission is rejected or cannot be produced.\n */\nexport function completeWith(walletClient: WalletClient): CompleteWith {\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 async function complete(workflow) {\n let result = await workflow.next();\n\n while (!result.done) {\n try {\n switch (result.value.kind) {\n case 'sendErc20ApprovalTransaction':\n case 'sendErc1155ApprovalForAllTransaction':\n case 'sendErc20TransferTransaction':\n case 'sendMergePositionsTransaction':\n case 'sendRedeemPositionsTransaction':\n case 'sendSplitPositionTransaction': {\n const { chainId, ...request } = result.value.request;\n await assertChainId(walletClient, chainId);\n const hash = await sendTransaction(walletClient, {\n account,\n ...request,\n });\n result = await workflow.next(\n new DirectTransactionHandle(hash, walletClient),\n );\n break;\n }\n\n case 'requestAddress':\n result = await workflow.next(address);\n break;\n\n case 'signGaslessTypedData':\n case 'signOrder':\n result = await workflow.next(\n expectEvmSignature(\n await signTypedData(walletClient, {\n account,\n ...result.value.payload,\n }),\n ),\n );\n break;\n\n case 'signGaslessMessage':\n result = await workflow.next(\n expectEvmSignature(\n await signMessage(walletClient, {\n account,\n message: {\n raw: hashTypedData(result.value.payload as never),\n },\n }),\n ),\n );\n break;\n }\n } catch (error) {\n result = await workflow.throw(error);\n }\n }\n\n return result.value;\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 ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "@polymarket/client",
3
+ "version": "0.0.0-canary-20260421120448",
4
+ "description": "The Polymarket SDK TypeScript client",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./node": {
14
+ "types": "./dist/node.d.ts",
15
+ "default": "./dist/node.js"
16
+ },
17
+ "./actions": {
18
+ "types": "./dist/actions/index.d.ts",
19
+ "default": "./dist/actions/index.js"
20
+ },
21
+ "./decorators": {
22
+ "types": "./dist/decorators/index.d.ts",
23
+ "default": "./dist/decorators/index.js"
24
+ },
25
+ "./ethers-v5": {
26
+ "types": "./dist/ethers-v5.d.ts",
27
+ "default": "./dist/ethers-v5.js"
28
+ },
29
+ "./privy": {
30
+ "types": "./dist/privy.d.ts",
31
+ "default": "./dist/privy.js"
32
+ },
33
+ "./viem": {
34
+ "types": "./dist/viem.d.ts",
35
+ "default": "./dist/viem.js"
36
+ }
37
+ },
38
+ "typesVersions": {
39
+ "*": {
40
+ "node": [
41
+ "./dist/node.d.ts"
42
+ ],
43
+ "actions": [
44
+ "./dist/actions/index.d.ts"
45
+ ],
46
+ "decorators": [
47
+ "./dist/decorators/index.d.ts"
48
+ ],
49
+ "ethers-v5": [
50
+ "./dist/ethers-v5.d.ts"
51
+ ],
52
+ "privy": [
53
+ "./dist/privy.d.ts"
54
+ ],
55
+ "viem": [
56
+ "./dist/viem.d.ts"
57
+ ]
58
+ }
59
+ },
60
+ "files": [
61
+ "dist"
62
+ ],
63
+ "sideEffects": false,
64
+ "devDependencies": {
65
+ "@privy-io/node": "^0.15.0",
66
+ "ethers-v5": "npm:ethers@^5.8.0",
67
+ "tsup": "^8.5.1",
68
+ "typescript": "^6.0.2",
69
+ "viem": "^2.46.3"
70
+ },
71
+ "license": "MIT",
72
+ "publishConfig": {
73
+ "access": "public"
74
+ },
75
+ "peerDependencies": {
76
+ "@privy-io/node": "^0.15.0",
77
+ "ethers-v5": "^5.8.0",
78
+ "viem": "^2.46.3"
79
+ },
80
+ "peerDependenciesMeta": {
81
+ "@privy-io/node": {
82
+ "optional": true
83
+ },
84
+ "ethers-v5": {
85
+ "optional": true
86
+ },
87
+ "viem": {
88
+ "optional": true
89
+ }
90
+ },
91
+ "dependencies": {
92
+ "ky": "^1.14.3",
93
+ "ox": "^0.14.16",
94
+ "zod": "^4.3.6",
95
+ "@polymarket/types": "0.0.0-canary-20260421120448",
96
+ "@polymarket/bindings": "0.0.0-canary-20260421120448"
97
+ },
98
+ "scripts": {
99
+ "build": "tsup",
100
+ "typecheck": "tsc -p tsconfig.json --noEmit"
101
+ }
102
+ }