@catalyst-team/poly-sdk 0.2.1 → 0.3.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/README.md +545 -812
- package/README.zh-CN.md +645 -342
- package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts +12 -0
- package/dist/__tests__/integration/arbitrage-service.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/arbitrage-service.integration.test.js +267 -0
- package/dist/__tests__/integration/arbitrage-service.integration.test.js.map +1 -0
- package/dist/__tests__/integration/data-api.integration.test.js +6 -3
- package/dist/__tests__/integration/data-api.integration.test.js.map +1 -1
- package/dist/__tests__/integration/market-service.integration.test.d.ts +10 -0
- package/dist/__tests__/integration/market-service.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/market-service.integration.test.js +173 -0
- package/dist/__tests__/integration/market-service.integration.test.js.map +1 -0
- package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts +10 -0
- package/dist/__tests__/integration/realtime-service-v2.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/realtime-service-v2.integration.test.js +307 -0
- package/dist/__tests__/integration/realtime-service-v2.integration.test.js.map +1 -0
- package/dist/__tests__/integration/trading-service.integration.test.d.ts +10 -0
- package/dist/__tests__/integration/trading-service.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/trading-service.integration.test.js +58 -0
- package/dist/__tests__/integration/trading-service.integration.test.js.map +1 -0
- package/dist/clients/clob-api.d.ts +73 -0
- package/dist/clients/clob-api.d.ts.map +1 -1
- package/dist/clients/clob-api.js +60 -0
- package/dist/clients/clob-api.js.map +1 -1
- package/dist/clients/data-api.d.ts +319 -14
- package/dist/clients/data-api.d.ts.map +1 -1
- package/dist/clients/data-api.js +342 -15
- package/dist/clients/data-api.js.map +1 -1
- package/dist/clients/subgraph.d.ts +196 -0
- package/dist/clients/subgraph.d.ts.map +1 -0
- package/dist/clients/subgraph.js +332 -0
- package/dist/clients/subgraph.js.map +1 -0
- package/dist/clients/websocket-manager.d.ts +3 -0
- package/dist/clients/websocket-manager.d.ts.map +1 -1
- package/dist/clients/websocket-manager.js +10 -3
- package/dist/clients/websocket-manager.js.map +1 -1
- package/dist/core/cache.d.ts +1 -0
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +1 -0
- package/dist/core/cache.js.map +1 -1
- package/dist/core/errors.d.ts +2 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +2 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/rate-limiter.d.ts +2 -1
- package/dist/core/rate-limiter.d.ts.map +1 -1
- package/dist/core/rate-limiter.js +5 -0
- package/dist/core/rate-limiter.js.map +1 -1
- package/dist/core/types.d.ts +100 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/types.test.d.ts +7 -0
- package/dist/core/types.test.d.ts.map +1 -0
- package/dist/core/types.test.js +122 -0
- package/dist/core/types.test.js.map +1 -0
- package/dist/index.d.ts +76 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +125 -132
- package/dist/index.js.map +1 -1
- package/dist/services/arbitrage-service.d.ts +3 -2
- package/dist/services/arbitrage-service.d.ts.map +1 -1
- package/dist/services/arbitrage-service.js +58 -40
- package/dist/services/arbitrage-service.js.map +1 -1
- package/dist/services/market-service.d.ts +108 -8
- package/dist/services/market-service.d.ts.map +1 -1
- package/dist/services/market-service.js +352 -36
- package/dist/services/market-service.js.map +1 -1
- package/dist/services/onchain-service.d.ts +309 -0
- package/dist/services/onchain-service.d.ts.map +1 -0
- package/dist/services/onchain-service.js +417 -0
- package/dist/services/onchain-service.js.map +1 -0
- package/dist/services/realtime-service-v2.d.ts +361 -0
- package/dist/services/realtime-service-v2.d.ts.map +1 -0
- package/dist/services/realtime-service-v2.js +840 -0
- package/dist/services/realtime-service-v2.js.map +1 -0
- package/dist/services/realtime-service.d.ts +17 -17
- package/dist/services/realtime-service.d.ts.map +1 -1
- package/dist/services/realtime-service.js +91 -59
- package/dist/services/realtime-service.js.map +1 -1
- package/dist/services/smart-money-service.d.ts +196 -0
- package/dist/services/smart-money-service.d.ts.map +1 -0
- package/dist/services/smart-money-service.js +358 -0
- package/dist/services/smart-money-service.js.map +1 -0
- package/dist/services/trading-service.d.ts +156 -0
- package/dist/services/trading-service.d.ts.map +1 -0
- package/dist/services/trading-service.js +356 -0
- package/dist/services/trading-service.js.map +1 -0
- package/dist/services/wallet-service.d.ts +183 -2
- package/dist/services/wallet-service.d.ts.map +1 -1
- package/dist/services/wallet-service.js +458 -1
- package/dist/services/wallet-service.js.map +1 -1
- package/dist/utils/price-utils.test.d.ts +5 -0
- package/dist/utils/price-utils.test.d.ts.map +1 -0
- package/dist/utils/price-utils.test.js +192 -0
- package/dist/utils/price-utils.test.js.map +1 -0
- package/package.json +4 -3
- package/README.en.md +0 -502
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OnchainService - Unified interface for all on-chain operations
|
|
3
|
+
*
|
|
4
|
+
* Consolidates:
|
|
5
|
+
* - CTF operations (split, merge, redeem)
|
|
6
|
+
* - Authorization (ERC20/ERC1155 approvals)
|
|
7
|
+
* - Swaps (QuickSwap V3)
|
|
8
|
+
*
|
|
9
|
+
* This service provides a single entry point for all blockchain interactions
|
|
10
|
+
* required for Polymarket trading. It shares wallet/provider configuration
|
|
11
|
+
* across all underlying services.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const onchain = new OnchainService({
|
|
16
|
+
* privateKey: '0x...',
|
|
17
|
+
* rpcUrl: 'https://polygon-rpc.com', // optional
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Check if ready for trading
|
|
21
|
+
* const status = await onchain.checkReadyForCTF('100');
|
|
22
|
+
* if (!status.ready) {
|
|
23
|
+
* // Set up approvals
|
|
24
|
+
* await onchain.approveAll();
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* // Execute CTF operations
|
|
28
|
+
* await onchain.split(conditionId, '100');
|
|
29
|
+
* await onchain.merge(conditionId, '100');
|
|
30
|
+
*
|
|
31
|
+
* // Swap tokens
|
|
32
|
+
* await onchain.swap('MATIC', 'USDC_E', '10');
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
import { ethers } from 'ethers';
|
|
36
|
+
// Import underlying services
|
|
37
|
+
import { CTFClient, } from '../clients/ctf-client.js';
|
|
38
|
+
import { AuthorizationService, } from './authorization-service.js';
|
|
39
|
+
import { SwapService, } from './swap-service.js';
|
|
40
|
+
// ===== OnchainService =====
|
|
41
|
+
/**
|
|
42
|
+
* Unified service for all on-chain operations on Polymarket
|
|
43
|
+
*
|
|
44
|
+
* This service wraps:
|
|
45
|
+
* - CTFClient: Conditional Token Framework operations (split, merge, redeem)
|
|
46
|
+
* - AuthorizationService: ERC20 and ERC1155 approvals
|
|
47
|
+
* - SwapService: DEX swaps on Polygon via QuickSwap V3
|
|
48
|
+
*
|
|
49
|
+
* All services share the same wallet and provider configuration.
|
|
50
|
+
*/
|
|
51
|
+
export class OnchainService {
|
|
52
|
+
wallet;
|
|
53
|
+
provider;
|
|
54
|
+
ctfClient;
|
|
55
|
+
authService;
|
|
56
|
+
swapService;
|
|
57
|
+
constructor(config) {
|
|
58
|
+
const rpcUrl = config.rpcUrl || 'https://polygon-rpc.com';
|
|
59
|
+
// Create shared provider and wallet
|
|
60
|
+
this.provider = new ethers.providers.JsonRpcProvider(rpcUrl);
|
|
61
|
+
this.wallet = new ethers.Wallet(config.privateKey, this.provider);
|
|
62
|
+
// Initialize CTFClient with config
|
|
63
|
+
const ctfConfig = {
|
|
64
|
+
privateKey: config.privateKey,
|
|
65
|
+
rpcUrl,
|
|
66
|
+
chainId: config.chainId,
|
|
67
|
+
gasPriceMultiplier: config.gasPriceMultiplier,
|
|
68
|
+
confirmations: config.confirmations,
|
|
69
|
+
txTimeout: config.txTimeout,
|
|
70
|
+
};
|
|
71
|
+
this.ctfClient = new CTFClient(ctfConfig);
|
|
72
|
+
// Initialize AuthorizationService with shared wallet
|
|
73
|
+
this.authService = new AuthorizationService(this.wallet, {
|
|
74
|
+
provider: this.provider,
|
|
75
|
+
});
|
|
76
|
+
// Initialize SwapService with shared wallet
|
|
77
|
+
this.swapService = new SwapService(this.wallet);
|
|
78
|
+
}
|
|
79
|
+
// ===== Utilities =====
|
|
80
|
+
/**
|
|
81
|
+
* Get the wallet address
|
|
82
|
+
*/
|
|
83
|
+
getAddress() {
|
|
84
|
+
return this.wallet.address;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get native MATIC balance
|
|
88
|
+
*/
|
|
89
|
+
async getMaticBalance() {
|
|
90
|
+
const balance = await this.provider.getBalance(this.wallet.address);
|
|
91
|
+
return ethers.utils.formatEther(balance);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get all token balances
|
|
95
|
+
*/
|
|
96
|
+
async getTokenBalances() {
|
|
97
|
+
const balances = await this.swapService.getBalances();
|
|
98
|
+
const findBalance = (token) => {
|
|
99
|
+
const entry = balances.find(b => b.token === token);
|
|
100
|
+
return entry?.balance || '0';
|
|
101
|
+
};
|
|
102
|
+
return {
|
|
103
|
+
matic: findBalance('MATIC'),
|
|
104
|
+
usdc: findBalance('USDC'),
|
|
105
|
+
usdcE: findBalance('USDC_E'),
|
|
106
|
+
usdt: findBalance('USDT'),
|
|
107
|
+
dai: findBalance('DAI'),
|
|
108
|
+
weth: findBalance('WETH'),
|
|
109
|
+
wmatic: findBalance('WMATIC'),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// ===== Authorization =====
|
|
113
|
+
/**
|
|
114
|
+
* Check all ERC20 and ERC1155 allowances required for trading
|
|
115
|
+
*
|
|
116
|
+
* @returns Status of all allowances and whether trading is ready
|
|
117
|
+
*/
|
|
118
|
+
async checkAllowances() {
|
|
119
|
+
return this.authService.checkAllowances();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Set up all required approvals for trading
|
|
123
|
+
*
|
|
124
|
+
* @returns Results of all approval transactions
|
|
125
|
+
*/
|
|
126
|
+
async approveAll() {
|
|
127
|
+
return this.authService.approveAll();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Approve USDC spending for a specific contract
|
|
131
|
+
*/
|
|
132
|
+
async approveUsdc(spenderAddress, amount = ethers.constants.MaxUint256) {
|
|
133
|
+
return this.authService.approveUsdc(spenderAddress, amount);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Set approval for an ERC1155 operator
|
|
137
|
+
*/
|
|
138
|
+
async setErc1155Approval(operatorAddress, approved = true) {
|
|
139
|
+
return this.authService.setErc1155Approval(operatorAddress, approved);
|
|
140
|
+
}
|
|
141
|
+
// ===== CTF Operations =====
|
|
142
|
+
/**
|
|
143
|
+
* Split USDC into YES + NO tokens
|
|
144
|
+
*
|
|
145
|
+
* @param conditionId - Market condition ID
|
|
146
|
+
* @param amount - USDC amount (e.g., "100" for 100 USDC)
|
|
147
|
+
* @returns SplitResult with transaction details
|
|
148
|
+
*/
|
|
149
|
+
async split(conditionId, amount) {
|
|
150
|
+
return this.ctfClient.split(conditionId, amount);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Merge YES + NO tokens back to USDC
|
|
154
|
+
*
|
|
155
|
+
* @param conditionId - Market condition ID
|
|
156
|
+
* @param amount - Number of token pairs to merge
|
|
157
|
+
* @returns MergeResult with transaction details
|
|
158
|
+
*/
|
|
159
|
+
async merge(conditionId, amount) {
|
|
160
|
+
return this.ctfClient.merge(conditionId, amount);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Merge YES and NO tokens using explicit token IDs
|
|
164
|
+
*
|
|
165
|
+
* Use this for Polymarket CLOB markets where token IDs
|
|
166
|
+
* don't match the calculated position IDs.
|
|
167
|
+
*/
|
|
168
|
+
async mergeByTokenIds(conditionId, tokenIds, amount) {
|
|
169
|
+
return this.ctfClient.mergeByTokenIds(conditionId, tokenIds, amount);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Redeem winning tokens after market resolution (Standard CTF)
|
|
173
|
+
*
|
|
174
|
+
* WARNING: Use redeemByTokenIds for Polymarket CLOB markets.
|
|
175
|
+
*/
|
|
176
|
+
async redeem(conditionId, outcome) {
|
|
177
|
+
return this.ctfClient.redeem(conditionId, outcome);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Redeem winning tokens using Polymarket token IDs (Polymarket CLOB)
|
|
181
|
+
*
|
|
182
|
+
* This is the correct method for Polymarket CLOB markets.
|
|
183
|
+
*/
|
|
184
|
+
async redeemByTokenIds(conditionId, tokenIds, outcome) {
|
|
185
|
+
return this.ctfClient.redeemByTokenIds(conditionId, tokenIds, outcome);
|
|
186
|
+
}
|
|
187
|
+
// ===== Balances =====
|
|
188
|
+
/**
|
|
189
|
+
* Get USDC.e (bridged USDC) balance - the token used by Polymarket CTF
|
|
190
|
+
*/
|
|
191
|
+
async getUsdcBalance() {
|
|
192
|
+
return this.ctfClient.getUsdcBalance();
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get native USDC balance (not compatible with CTF)
|
|
196
|
+
*/
|
|
197
|
+
async getNativeUsdcBalance() {
|
|
198
|
+
return this.ctfClient.getNativeUsdcBalance();
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get token balances for a market using calculated position IDs
|
|
202
|
+
*
|
|
203
|
+
* @deprecated Use getPositionBalanceByTokenIds for CLOB markets
|
|
204
|
+
*/
|
|
205
|
+
async getPositionBalance(conditionId) {
|
|
206
|
+
return this.ctfClient.getPositionBalance(conditionId);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get token balances using CLOB API token IDs
|
|
210
|
+
*
|
|
211
|
+
* This is the recommended method for checking balances when working with
|
|
212
|
+
* Polymarket CLOB markets.
|
|
213
|
+
*/
|
|
214
|
+
async getPositionBalanceByTokenIds(conditionId, tokenIds) {
|
|
215
|
+
return this.ctfClient.getPositionBalanceByTokenIds(conditionId, tokenIds);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if wallet is ready for CTF trading operations
|
|
219
|
+
*
|
|
220
|
+
* Combines CTF readiness check with authorization status.
|
|
221
|
+
*/
|
|
222
|
+
async checkReadyForCTF(amount) {
|
|
223
|
+
// Check CTF readiness (balances)
|
|
224
|
+
const ctfStatus = await this.ctfClient.checkReadyForCTF(amount);
|
|
225
|
+
// Check authorization status
|
|
226
|
+
const authStatus = await this.authService.checkAllowances();
|
|
227
|
+
// Combine issues
|
|
228
|
+
const issues = [];
|
|
229
|
+
if (ctfStatus.suggestion) {
|
|
230
|
+
issues.push(ctfStatus.suggestion);
|
|
231
|
+
}
|
|
232
|
+
issues.push(...authStatus.issues);
|
|
233
|
+
return {
|
|
234
|
+
ready: ctfStatus.ready && authStatus.tradingReady,
|
|
235
|
+
usdcEBalance: ctfStatus.usdcEBalance,
|
|
236
|
+
nativeUsdcBalance: ctfStatus.nativeUsdcBalance,
|
|
237
|
+
maticBalance: ctfStatus.maticBalance,
|
|
238
|
+
tradingReady: authStatus.tradingReady,
|
|
239
|
+
issues,
|
|
240
|
+
suggestion: ctfStatus.suggestion,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Check if wallet has sufficient tokens for merge
|
|
245
|
+
*/
|
|
246
|
+
async canMerge(conditionId, amount) {
|
|
247
|
+
return this.ctfClient.canMerge(conditionId, amount);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Check if wallet has sufficient tokens for merge using CLOB token IDs
|
|
251
|
+
*/
|
|
252
|
+
async canMergeWithTokenIds(conditionId, tokenIds, amount) {
|
|
253
|
+
return this.ctfClient.canMergeWithTokenIds(conditionId, tokenIds, amount);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Check if wallet has sufficient USDC for split
|
|
257
|
+
*/
|
|
258
|
+
async canSplit(amount) {
|
|
259
|
+
return this.ctfClient.canSplit(amount);
|
|
260
|
+
}
|
|
261
|
+
// ===== Market Resolution =====
|
|
262
|
+
/**
|
|
263
|
+
* Check if a market is resolved and get payout info
|
|
264
|
+
*/
|
|
265
|
+
async getMarketResolution(conditionId) {
|
|
266
|
+
return this.ctfClient.getMarketResolution(conditionId);
|
|
267
|
+
}
|
|
268
|
+
// ===== Gas Estimation =====
|
|
269
|
+
/**
|
|
270
|
+
* Get detailed gas estimate for a split operation
|
|
271
|
+
*/
|
|
272
|
+
async estimateSplitGas(conditionId, amount) {
|
|
273
|
+
return this.ctfClient.getDetailedSplitGasEstimate(conditionId, amount);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get detailed gas estimate for a merge operation
|
|
277
|
+
*/
|
|
278
|
+
async estimateMergeGas(conditionId, amount) {
|
|
279
|
+
return this.ctfClient.getDetailedMergeGasEstimate(conditionId, amount);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get current gas price info
|
|
283
|
+
*/
|
|
284
|
+
async getGasPrice() {
|
|
285
|
+
return this.ctfClient.getGasPrice();
|
|
286
|
+
}
|
|
287
|
+
// ===== Transaction Monitoring =====
|
|
288
|
+
/**
|
|
289
|
+
* Get transaction status with detailed info
|
|
290
|
+
*/
|
|
291
|
+
async getTransactionStatus(txHash) {
|
|
292
|
+
return this.ctfClient.getTransactionStatus(txHash);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Wait for transaction confirmation with timeout
|
|
296
|
+
*/
|
|
297
|
+
async waitForTransaction(txHash, confirmations) {
|
|
298
|
+
return this.ctfClient.waitForTransaction(txHash, confirmations);
|
|
299
|
+
}
|
|
300
|
+
// ===== Swaps =====
|
|
301
|
+
/**
|
|
302
|
+
* Get a quote for a swap (checks if route is possible)
|
|
303
|
+
*/
|
|
304
|
+
async getSwapQuote(tokenIn, tokenOut, amount) {
|
|
305
|
+
return this.swapService.getQuote(tokenIn, tokenOut, amount);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Execute a token swap using QuickSwap V3
|
|
309
|
+
*
|
|
310
|
+
* @param tokenIn - Token to swap from (e.g., 'MATIC', 'USDC', 'USDT')
|
|
311
|
+
* @param tokenOut - Token to swap to (e.g., 'USDC_E', 'WETH')
|
|
312
|
+
* @param amount - Amount to swap in token units
|
|
313
|
+
* @param slippage - Slippage tolerance in percent (default: 0.5)
|
|
314
|
+
*/
|
|
315
|
+
async swap(tokenIn, tokenOut, amount, slippage) {
|
|
316
|
+
return this.swapService.swap(tokenIn, tokenOut, amount, { slippage });
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Swap any supported token to USDC.e and deposit to Polymarket
|
|
320
|
+
*
|
|
321
|
+
* This is a convenience method for converting tokens to the USDC.e
|
|
322
|
+
* format required by Polymarket CTF operations.
|
|
323
|
+
*/
|
|
324
|
+
async swapAndDeposit(token, amount, slippage) {
|
|
325
|
+
return this.swapService.swapToUsdc(token, amount, {
|
|
326
|
+
usdcType: 'USDC_E',
|
|
327
|
+
slippage,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Get all available liquidity pools on QuickSwap V3
|
|
332
|
+
*/
|
|
333
|
+
async getAvailablePools() {
|
|
334
|
+
return this.swapService.getAvailablePools();
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Check if a pool exists for a token pair
|
|
338
|
+
*/
|
|
339
|
+
async checkPool(tokenA, tokenB) {
|
|
340
|
+
return this.swapService.checkPool(tokenA, tokenB);
|
|
341
|
+
}
|
|
342
|
+
// ===== Token Transfers =====
|
|
343
|
+
/**
|
|
344
|
+
* Transfer an ERC20 token to another address
|
|
345
|
+
*/
|
|
346
|
+
async transfer(token, to, amount) {
|
|
347
|
+
return this.swapService.transfer(token, to, amount);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Transfer native MATIC to another address
|
|
351
|
+
*/
|
|
352
|
+
async transferMatic(to, amount) {
|
|
353
|
+
return this.swapService.transferMatic(to, amount);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Transfer native USDC to another address
|
|
357
|
+
*
|
|
358
|
+
* WARNING: This transfers NATIVE USDC, not USDC.e.
|
|
359
|
+
* For Polymarket CTF operations, use transferUsdcE() instead.
|
|
360
|
+
*/
|
|
361
|
+
async transferUsdc(to, amount) {
|
|
362
|
+
return this.swapService.transferUsdc(to, amount);
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Transfer USDC.e (bridged USDC) to another address
|
|
366
|
+
*
|
|
367
|
+
* This is the correct method for Polymarket CTF operations.
|
|
368
|
+
*/
|
|
369
|
+
async transferUsdcE(to, amount) {
|
|
370
|
+
return this.swapService.transferUsdcE(to, amount);
|
|
371
|
+
}
|
|
372
|
+
// ===== MATIC Wrapping =====
|
|
373
|
+
/**
|
|
374
|
+
* Wrap native MATIC to WMATIC
|
|
375
|
+
*/
|
|
376
|
+
async wrapMatic(amount) {
|
|
377
|
+
return this.swapService.wrapMatic(amount);
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Unwrap WMATIC to native MATIC
|
|
381
|
+
*/
|
|
382
|
+
async unwrapMatic(amount) {
|
|
383
|
+
return this.swapService.unwrapMatic(amount);
|
|
384
|
+
}
|
|
385
|
+
// ===== Advanced Access =====
|
|
386
|
+
/**
|
|
387
|
+
* Get the underlying CTFClient for advanced operations
|
|
388
|
+
*/
|
|
389
|
+
getCTFClient() {
|
|
390
|
+
return this.ctfClient;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Get the underlying AuthorizationService for advanced operations
|
|
394
|
+
*/
|
|
395
|
+
getAuthorizationService() {
|
|
396
|
+
return this.authService;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Get the underlying SwapService for advanced operations
|
|
400
|
+
*/
|
|
401
|
+
getSwapService() {
|
|
402
|
+
return this.swapService;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Get the shared wallet instance
|
|
406
|
+
*/
|
|
407
|
+
getWallet() {
|
|
408
|
+
return this.wallet;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Get the shared provider instance
|
|
412
|
+
*/
|
|
413
|
+
getProvider() {
|
|
414
|
+
return this.provider;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=onchain-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onchain-service.js","sourceRoot":"","sources":["../../src/services/onchain-service.ts"],"names":[],"mappings":"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"}
|