@speculite/clob-client 0.1.3 → 0.1.4

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/README.md CHANGED
@@ -76,6 +76,7 @@ console.log(order.order_id, order.lifecycle_status);
76
76
  - `prepareMergeTx({ marketId, pairs, holder })`
77
77
  - `prepareClaimTx({ marketId })`
78
78
  - `prepareResolveTx({ marketId, pythAddress, rpcUrl? })`
79
+ - `getMintFundingStatus({ marketId, amount, account?, rpcUrl? })`
79
80
  - `sendPreparedTransaction(tx, account?)`
80
81
  - `approveUsdc(...)`
81
82
  - `mintTokens(...)`
@@ -129,6 +130,18 @@ const client = new SpeculiteClobClient(
129
130
  }
130
131
  );
131
132
 
133
+ const funding = await client.getMintFundingStatus({
134
+ marketId: 'MARKET_UUID',
135
+ amount: '25'
136
+ });
137
+ if (!funding.hasSufficientAllowance) {
138
+ await client.approveUsdc({
139
+ spender: funding.exchangeAddress,
140
+ usdcAddress: funding.usdcAddress,
141
+ amount: '25'
142
+ });
143
+ }
144
+
132
145
  const mint = await client.mintTokens({
133
146
  marketId: 'MARKET_UUID',
134
147
  amount: '25'
@@ -1,5 +1,5 @@
1
1
  import { type Hex } from 'viem';
2
- import type { OnchainExecutionResult, OnchainExecutionAccount, PrepareApproveUsdcArgs, PrepareClaimArgs, PrepareMergeArgs, PrepareMintArgs, PrepareResolveArgs, PreparedOnchainTransaction, PreparedResolveTransaction } from '../types.js';
2
+ import type { MintFundingStatus, MintFundingStatusArgs, OnchainExecutionResult, OnchainExecutionAccount, PrepareApproveUsdcArgs, PrepareClaimArgs, PrepareMergeArgs, PrepareMintArgs, PrepareResolveArgs, PreparedOnchainTransaction, PreparedResolveTransaction } from '../types.js';
3
3
  import { TradingClient } from './tradingClient.js';
4
4
  /**
5
5
  * Wallet-native lifecycle helpers.
@@ -8,6 +8,10 @@ import { TradingClient } from './tradingClient.js';
8
8
  * action methods (`mintTokens`, `claimWinnings`, ...) prepare + send in one call.
9
9
  */
10
10
  export declare class LifecycleClient extends TradingClient {
11
+ private buildMintTx;
12
+ private executionAccountAddress;
13
+ private mintFundingHint;
14
+ private shouldRunMintFundingDiagnostics;
11
15
  /** Prepares ERC20 approve tx (typically USDC -> exchange). */
12
16
  prepareApproveUsdcTx(args: PrepareApproveUsdcArgs): Promise<PreparedOnchainTransaction>;
13
17
  /** Prepares mint tx for paired YES/NO tokens. */
@@ -23,6 +27,13 @@ export declare class LifecycleClient extends TradingClient {
23
27
  * - returns payable tx payload
24
28
  */
25
29
  prepareResolveTx(args: PrepareResolveArgs): Promise<PreparedResolveTransaction>;
30
+ /**
31
+ * Reads USDC allowance/balance required for `mint`.
32
+ *
33
+ * This is useful before `mintTokens` and also used internally
34
+ * to diagnose underflow-style reverts from ERC20 `transferFrom`.
35
+ */
36
+ getMintFundingStatus(args: MintFundingStatusArgs): Promise<MintFundingStatus>;
26
37
  /** Sends a prepared transaction via configured wallet client. */
27
38
  sendPreparedTransaction(tx: PreparedOnchainTransaction, account?: OnchainExecutionAccount): Promise<Hex>;
28
39
  /** Prepares + sends approve tx. */
@@ -32,6 +43,7 @@ export declare class LifecycleClient extends TradingClient {
32
43
  /** Prepares + sends mint tx. */
33
44
  mintTokens(args: PrepareMintArgs & {
34
45
  account?: OnchainExecutionAccount;
46
+ rpcUrl?: string;
35
47
  }): Promise<OnchainExecutionResult<PreparedOnchainTransaction>>;
36
48
  /** Prepares + sends merge tx. */
37
49
  mergeTokens(args: PrepareMergeArgs & {
@@ -1,5 +1,5 @@
1
- import { encodeFunctionData, parseUnits } from 'viem';
2
- import { ERC20_ABI, EXCHANGE_CLAIM_ABI, EXCHANGE_MERGE_ABI, EXCHANGE_MINT_ABI, EXCHANGE_RESOLVE_ABI, MIN_UPDATE_FEE_BUFFER_WEI, PYTH_ABI, } from '../internal/constants.js';
1
+ import { encodeFunctionData, formatUnits, parseUnits } from 'viem';
2
+ import { ERC20_ABI, EXCHANGE_CLAIM_ABI, EXCHANGE_MARKET_USDC_ABI, EXCHANGE_MERGE_ABI, EXCHANGE_MINT_ABI, EXCHANGE_RESOLVE_ABI, MIN_UPDATE_FEE_BUFFER_WEI, PYTH_ABI, } from '../internal/constants.js';
3
3
  import { normalizeAddress, toPositiveDecimalString } from '../internal/utils.js';
4
4
  import { TradingClient } from './tradingClient.js';
5
5
  /**
@@ -9,6 +9,46 @@ import { TradingClient } from './tradingClient.js';
9
9
  * action methods (`mintTokens`, `claimWinnings`, ...) prepare + send in one call.
10
10
  */
11
11
  export class LifecycleClient extends TradingClient {
12
+ buildMintTx(marketIdOnchain, exchangeAddress, amount) {
13
+ const data = encodeFunctionData({
14
+ abi: EXCHANGE_MINT_ABI,
15
+ functionName: 'mint',
16
+ args: [BigInt(marketIdOnchain), amount]
17
+ });
18
+ return {
19
+ to: exchangeAddress,
20
+ data,
21
+ chainId: this.chainId,
22
+ kind: 'mint'
23
+ };
24
+ }
25
+ executionAccountAddress(account) {
26
+ return normalizeAddress(typeof account === 'string' ? account : account.address, 'account');
27
+ }
28
+ mintFundingHint(status) {
29
+ const required = formatUnits(status.requiredAmount, 6);
30
+ const allowance = formatUnits(status.allowance, 6);
31
+ const balance = formatUnits(status.balance, 6);
32
+ const failures = [];
33
+ if (!status.hasSufficientAllowance) {
34
+ failures.push(`allowance ${allowance} < required ${required}`);
35
+ }
36
+ if (!status.hasSufficientBalance) {
37
+ failures.push(`balance ${balance} < required ${required}`);
38
+ }
39
+ const verdict = failures.length > 0
40
+ ? failures.join('; ')
41
+ : 'allowance and balance checks passed';
42
+ return `Mint funding check: ${verdict}. owner=${status.owner} spender=${status.exchangeAddress} usdc=${status.usdcAddress} required=${required} allowance=${allowance} balance=${balance}.`;
43
+ }
44
+ shouldRunMintFundingDiagnostics(error) {
45
+ const message = String(error instanceof Error ? error.message : error).toLowerCase();
46
+ return (message.includes('underflow or overflow') ||
47
+ message.includes('0x11') ||
48
+ message.includes('usdc_transfer_failed') ||
49
+ message.includes('insufficient allowance') ||
50
+ message.includes('insufficient balance'));
51
+ }
12
52
  /** Prepares ERC20 approve tx (typically USDC -> exchange). */
13
53
  async prepareApproveUsdcTx(args) {
14
54
  const spender = normalizeAddress(args.spender, 'spender');
@@ -30,17 +70,7 @@ export class LifecycleClient extends TradingClient {
30
70
  async prepareMintTx(args) {
31
71
  const market = await this.resolveOnchainMarketInfo(args.marketId, args.market);
32
72
  const amount = parseUnits(toPositiveDecimalString(args.amount, 'amount'), 6);
33
- const data = encodeFunctionData({
34
- abi: EXCHANGE_MINT_ABI,
35
- functionName: 'mint',
36
- args: [BigInt(market.marketIdOnchain), amount]
37
- });
38
- return {
39
- to: market.exchangeAddress,
40
- data,
41
- chainId: this.chainId,
42
- kind: 'mint'
43
- };
73
+ return this.buildMintTx(market.marketIdOnchain, market.exchangeAddress, amount);
44
74
  }
45
75
  /** Prepares merge tx to redeem paired tokens back to USDC. */
46
76
  async prepareMergeTx(args) {
@@ -117,6 +147,50 @@ export class LifecycleClient extends TradingClient {
117
147
  marketIdOnchain: market.marketIdOnchain
118
148
  };
119
149
  }
150
+ /**
151
+ * Reads USDC allowance/balance required for `mint`.
152
+ *
153
+ * This is useful before `mintTokens` and also used internally
154
+ * to diagnose underflow-style reverts from ERC20 `transferFrom`.
155
+ */
156
+ async getMintFundingStatus(args) {
157
+ const market = await this.resolveOnchainMarketInfo(args.marketId, args.market);
158
+ const requiredAmount = parseUnits(toPositiveDecimalString(args.amount, 'amount'), 6);
159
+ const walletClient = this.requireWalletClient();
160
+ const executionAccount = await this.resolveWalletAccount(walletClient, args.account);
161
+ const owner = this.executionAccountAddress(executionAccount);
162
+ const publicClient = this.resolvePublicClient(args.rpcUrl);
163
+ const usdcAddress = normalizeAddress(await publicClient.readContract({
164
+ address: market.exchangeAddress,
165
+ abi: EXCHANGE_MARKET_USDC_ABI,
166
+ functionName: 'getMarketUSDC',
167
+ args: [BigInt(market.marketIdOnchain)]
168
+ }), 'market.usdcAddress');
169
+ const [allowance, balance] = await Promise.all([
170
+ publicClient.readContract({
171
+ address: usdcAddress,
172
+ abi: ERC20_ABI,
173
+ functionName: 'allowance',
174
+ args: [owner, market.exchangeAddress]
175
+ }),
176
+ publicClient.readContract({
177
+ address: usdcAddress,
178
+ abi: ERC20_ABI,
179
+ functionName: 'balanceOf',
180
+ args: [owner]
181
+ })
182
+ ]);
183
+ return {
184
+ owner,
185
+ exchangeAddress: market.exchangeAddress,
186
+ usdcAddress,
187
+ requiredAmount,
188
+ allowance,
189
+ balance,
190
+ hasSufficientAllowance: allowance >= requiredAmount,
191
+ hasSufficientBalance: balance >= requiredAmount
192
+ };
193
+ }
120
194
  /** Sends a prepared transaction via configured wallet client. */
121
195
  async sendPreparedTransaction(tx, account) {
122
196
  const walletClient = this.requireWalletClient();
@@ -137,9 +211,45 @@ export class LifecycleClient extends TradingClient {
137
211
  }
138
212
  /** Prepares + sends mint tx. */
139
213
  async mintTokens(args) {
140
- const tx = await this.prepareMintTx(args);
141
- const hash = await this.sendPreparedTransaction(tx, args.account);
142
- return { hash, tx };
214
+ const market = await this.resolveOnchainMarketInfo(args.marketId, args.market);
215
+ const amount = parseUnits(toPositiveDecimalString(args.amount, 'amount'), 6);
216
+ const tx = this.buildMintTx(market.marketIdOnchain, market.exchangeAddress, amount);
217
+ const walletClient = this.requireWalletClient();
218
+ const executionAccount = await this.resolveWalletAccount(walletClient, args.account);
219
+ try {
220
+ const hash = await walletClient.sendTransaction({
221
+ account: executionAccount,
222
+ to: tx.to,
223
+ data: tx.data,
224
+ value: tx.value || 0n,
225
+ chain: walletClient.chain ?? null
226
+ });
227
+ return { hash, tx };
228
+ }
229
+ catch (error) {
230
+ if (!this.shouldRunMintFundingDiagnostics(error)) {
231
+ throw error;
232
+ }
233
+ try {
234
+ const funding = await this.getMintFundingStatus({
235
+ ...args,
236
+ market,
237
+ account: executionAccount
238
+ });
239
+ const base = error instanceof Error ? error.message : String(error);
240
+ throw new Error(`${base}\n${this.mintFundingHint(funding)}`);
241
+ }
242
+ catch (diagnosticError) {
243
+ if (diagnosticError instanceof Error && diagnosticError.message.includes('Mint funding check:')) {
244
+ throw diagnosticError;
245
+ }
246
+ const base = error instanceof Error ? error.message : String(error);
247
+ const diagnosticMessage = diagnosticError instanceof Error
248
+ ? diagnosticError.message
249
+ : String(diagnosticError);
250
+ throw new Error(`${base}\nMint funding check unavailable: ${diagnosticMessage}`);
251
+ }
252
+ }
143
253
  }
144
254
  /** Prepares + sends merge tx. */
145
255
  async mergeTokens(args) {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycleClient.js","sourceRoot":"","sources":["../../src/client/lifecycleClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycleClient.js","sourceRoot":"","sources":["../../src/client/lifecycleClient.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ export declare const SCALE = 1000000;
36
36
  export declare const MIN_UPDATE_FEE_BUFFER_WEI = 1000n;
37
37
  /** Default Hermes endpoint used to fetch Pyth update payloads. */
38
38
  export declare const DEFAULT_PYTH_PRICE_SERVICE_URL = "https://hermes.pyth.network";
39
- /** ERC20 ABI subset needed for USDC approvals. */
39
+ /** ERC20 ABI subset needed for USDC approvals and funding checks. */
40
40
  export declare const ERC20_ABI: readonly [{
41
41
  readonly inputs: readonly [{
42
42
  readonly internalType: "address";
@@ -55,6 +55,54 @@ export declare const ERC20_ABI: readonly [{
55
55
  }];
56
56
  readonly stateMutability: "nonpayable";
57
57
  readonly type: "function";
58
+ }, {
59
+ readonly inputs: readonly [{
60
+ readonly internalType: "address";
61
+ readonly name: "owner";
62
+ readonly type: "address";
63
+ }, {
64
+ readonly internalType: "address";
65
+ readonly name: "spender";
66
+ readonly type: "address";
67
+ }];
68
+ readonly name: "allowance";
69
+ readonly outputs: readonly [{
70
+ readonly internalType: "uint256";
71
+ readonly name: "";
72
+ readonly type: "uint256";
73
+ }];
74
+ readonly stateMutability: "view";
75
+ readonly type: "function";
76
+ }, {
77
+ readonly inputs: readonly [{
78
+ readonly internalType: "address";
79
+ readonly name: "account";
80
+ readonly type: "address";
81
+ }];
82
+ readonly name: "balanceOf";
83
+ readonly outputs: readonly [{
84
+ readonly internalType: "uint256";
85
+ readonly name: "";
86
+ readonly type: "uint256";
87
+ }];
88
+ readonly stateMutability: "view";
89
+ readonly type: "function";
90
+ }];
91
+ /** Exchange ABI subset needed to discover the market's USDC token. */
92
+ export declare const EXCHANGE_MARKET_USDC_ABI: readonly [{
93
+ readonly inputs: readonly [{
94
+ readonly internalType: "uint256";
95
+ readonly name: "marketId";
96
+ readonly type: "uint256";
97
+ }];
98
+ readonly name: "getMarketUSDC";
99
+ readonly outputs: readonly [{
100
+ readonly internalType: "address";
101
+ readonly name: "";
102
+ readonly type: "address";
103
+ }];
104
+ readonly stateMutability: "view";
105
+ readonly type: "function";
58
106
  }];
59
107
  /** Exchange ABI subset needed to mint paired outcome tokens. */
60
108
  export declare const EXCHANGE_MINT_ABI: readonly [{
@@ -19,8 +19,9 @@ export const SCALE = 1_000_000;
19
19
  export const MIN_UPDATE_FEE_BUFFER_WEI = 1000n;
20
20
  /** Default Hermes endpoint used to fetch Pyth update payloads. */
21
21
  export const DEFAULT_PYTH_PRICE_SERVICE_URL = 'https://hermes.pyth.network';
22
- /** ERC20 ABI subset needed for USDC approvals. */
23
- export const ERC20_ABI = [{
22
+ /** ERC20 ABI subset needed for USDC approvals and funding checks. */
23
+ export const ERC20_ABI = [
24
+ {
24
25
  inputs: [
25
26
  { internalType: 'address', name: 'spender', type: 'address' },
26
27
  { internalType: 'uint256', name: 'value', type: 'uint256' }
@@ -29,6 +30,36 @@ export const ERC20_ABI = [{
29
30
  outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
30
31
  stateMutability: 'nonpayable',
31
32
  type: 'function'
33
+ },
34
+ {
35
+ inputs: [
36
+ { internalType: 'address', name: 'owner', type: 'address' },
37
+ { internalType: 'address', name: 'spender', type: 'address' }
38
+ ],
39
+ name: 'allowance',
40
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
41
+ stateMutability: 'view',
42
+ type: 'function'
43
+ },
44
+ {
45
+ inputs: [
46
+ { internalType: 'address', name: 'account', type: 'address' }
47
+ ],
48
+ name: 'balanceOf',
49
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
50
+ stateMutability: 'view',
51
+ type: 'function'
52
+ }
53
+ ];
54
+ /** Exchange ABI subset needed to discover the market's USDC token. */
55
+ export const EXCHANGE_MARKET_USDC_ABI = [{
56
+ inputs: [
57
+ { internalType: 'uint256', name: 'marketId', type: 'uint256' }
58
+ ],
59
+ name: 'getMarketUSDC',
60
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
61
+ stateMutability: 'view',
62
+ type: 'function'
32
63
  }];
33
64
  /** Exchange ABI subset needed to mint paired outcome tokens. */
34
65
  export const EXCHANGE_MINT_ABI = [{
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -300,6 +300,20 @@ export interface PrepareMintArgs {
300
300
  amount: number | string;
301
301
  market?: Partial<OnchainMarketInfo>;
302
302
  }
303
+ export interface MintFundingStatusArgs extends PrepareMintArgs {
304
+ account?: OnchainExecutionAccount;
305
+ rpcUrl?: string;
306
+ }
307
+ export interface MintFundingStatus {
308
+ owner: Address;
309
+ exchangeAddress: Address;
310
+ usdcAddress: Address;
311
+ requiredAmount: bigint;
312
+ allowance: bigint;
313
+ balance: bigint;
314
+ hasSufficientAllowance: boolean;
315
+ hasSufficientBalance: boolean;
316
+ }
303
317
  export interface PrepareMergeArgs {
304
318
  marketId: string;
305
319
  pairs: number | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speculite/clob-client",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Official TypeScript SDK for Speculite CLOB and developer trading APIs",
5
5
  "type": "module",
6
6
  "license": "MIT",