mantle-agent-kit-sdk 1.0.3 → 1.1.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/index.d.ts CHANGED
@@ -1,8 +1,36 @@
1
1
  import * as viem from 'viem';
2
- import { WalletClient, Transport, Chain, PublicActions, Address as Address$1, Hex } from 'viem';
3
- import { PrivateKeyAccount, Address } from 'viem/accounts';
2
+ import { Hex, Address, WalletClient, Transport, Chain, PublicActions } from 'viem';
3
+ import { PrivateKeyAccount, Address as Address$1 } from 'viem/accounts';
4
4
  import { Erc7811Actions } from 'viem/experimental';
5
5
 
6
+ interface OpenPositionResult$1 {
7
+ positionId: bigint;
8
+ txHash: Hex;
9
+ }
10
+ /**
11
+ * Open a short position on PikePerps
12
+ * @param agent - MNTAgentKit instance
13
+ * @param tokenAddress - Token to trade (meme token address)
14
+ * @param margin - Margin amount in wei (as string)
15
+ * @param leverage - Leverage multiplier (1-100)
16
+ * @returns Position ID and transaction hash
17
+ */
18
+ declare function pikeperpsOpenShort(agent: MNTAgentKit, tokenAddress: Address, margin: string, leverage?: number): Promise<OpenPositionResult$1>;
19
+
20
+ interface OpenPositionResult {
21
+ positionId: bigint;
22
+ txHash: Hex;
23
+ }
24
+ /**
25
+ * Open a long position on PikePerps
26
+ * @param agent - MNTAgentKit instance
27
+ * @param tokenAddress - Token to trade (meme token address)
28
+ * @param margin - Margin amount in wei (as string)
29
+ * @param leverage - Leverage multiplier (1-100)
30
+ * @returns Position ID and transaction hash
31
+ */
32
+ declare function pikeperpsOpenLong(agent: MNTAgentKit, tokenAddress: Address, margin: string, leverage?: number): Promise<OpenPositionResult>;
33
+
6
34
  interface SquidRoute {
7
35
  route: {
8
36
  estimate: {
@@ -52,166 +80,7 @@ interface SquidRoute {
52
80
  };
53
81
  }
54
82
 
55
- declare const SWAP_ROUTER_ADDRESS = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
56
- declare const QUOTER_V2_ADDRESS = "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
57
- declare const FACTORY_ADDRESS = "0x1F98431c8aD98523631AE4a59f267346ea31F984";
58
- declare const WMNT_ADDRESS$1 = "0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8";
59
- declare const NATIVE_TOKEN_ADDRESS$3 = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
60
- declare const FEE_TIERS$1: {
61
- readonly LOWEST: 100;
62
- readonly LOW: 500;
63
- readonly MEDIUM: 3000;
64
- readonly HIGH: 10000;
65
- };
66
- declare const DEFAULT_POOL_FEE: 3000;
67
-
68
- declare const index$8_DEFAULT_POOL_FEE: typeof DEFAULT_POOL_FEE;
69
- declare const index$8_FACTORY_ADDRESS: typeof FACTORY_ADDRESS;
70
- declare const index$8_QUOTER_V2_ADDRESS: typeof QUOTER_V2_ADDRESS;
71
- declare const index$8_SWAP_ROUTER_ADDRESS: typeof SWAP_ROUTER_ADDRESS;
72
- declare namespace index$8 {
73
- export { index$8_DEFAULT_POOL_FEE as DEFAULT_POOL_FEE, index$8_FACTORY_ADDRESS as FACTORY_ADDRESS, FEE_TIERS$1 as FEE_TIERS, NATIVE_TOKEN_ADDRESS$3 as NATIVE_TOKEN_ADDRESS, index$8_QUOTER_V2_ADDRESS as QUOTER_V2_ADDRESS, index$8_SWAP_ROUTER_ADDRESS as SWAP_ROUTER_ADDRESS, WMNT_ADDRESS$1 as WMNT_ADDRESS };
74
- }
75
-
76
- interface UniswapQuoteResult {
77
- amountOut: bigint;
78
- sqrtPriceX96After: bigint;
79
- gasEstimate: bigint;
80
- }
81
-
82
- interface OneInchQuote {
83
- srcToken: {
84
- address: string;
85
- symbol: string;
86
- decimals: number;
87
- };
88
- dstToken: {
89
- address: string;
90
- symbol: string;
91
- decimals: number;
92
- };
93
- srcAmount: string;
94
- dstAmount: string;
95
- gas: number;
96
- }
97
-
98
- interface OpenOceanQuote {
99
- inToken: {
100
- address: string;
101
- decimals: number;
102
- symbol: string;
103
- name: string;
104
- };
105
- outToken: {
106
- address: string;
107
- decimals: number;
108
- symbol: string;
109
- name: string;
110
- };
111
- inAmount: string;
112
- outAmount: string;
113
- estimatedGas: string;
114
- }
115
-
116
- /**
117
- * Platform Configuration & Validation
118
- *
119
- * Validates APP_ID with Mantle platform API
120
- */
121
- /** Project configuration from platform */
122
- interface ProjectConfig {
123
- appId: string;
124
- name: string;
125
- payTo: string;
126
- network: string;
127
- status: string;
128
- }
129
- /**
130
- * Initialize platform validation
131
- *
132
- * Reads APP_ID from environment and validates with platform API.
133
- * Uses singleton pattern - multiple calls return same promise.
134
- *
135
- * @returns Project configuration from platform
136
- * @throws Error if APP_ID is not set or validation fails
137
- */
138
- declare function initializePlatform(): Promise<ProjectConfig>;
139
- /**
140
- * Get cached project configuration
141
- *
142
- * @throws Error if platform not initialized
143
- */
144
- declare function getProjectConfig(): ProjectConfig;
145
-
146
- declare class MNTAgentKit {
147
- account: PrivateKeyAccount;
148
- client: WalletClient<Transport, Chain, PrivateKeyAccount> & PublicActions & Erc7811Actions;
149
- chain: "testnet" | "mainnet";
150
- demo: boolean;
151
- projectConfig?: ProjectConfig;
152
- constructor(privateKey: Address, chain: "mainnet" | "testnet" | "testnet-demo");
153
- /**
154
- * Initialize the agent with platform validation
155
- *
156
- * Validates APP_ID with the platform API.
157
- * Must be called after creating the agent instance.
158
- *
159
- * @returns The initialized agent instance
160
- * @throws Error if APP_ID is not set or validation fails
161
- *
162
- * @example
163
- * ```typescript
164
- * const agent = new MNTAgentKit(privateKey, "mainnet");
165
- * await agent.initialize(); // Validates APP_ID
166
- * ```
167
- */
168
- initialize(): Promise<MNTAgentKit>;
169
- sendTransaction(to: Address, amount: string): Promise<viem.TransactionReceipt<bigint, number, "success" | "reverted", viem.TransactionType>>;
170
- getSwapQuote(fromTokenAddress: string, toTokenAddress: string, amount: string, slippagePercentage?: string): Promise<any>;
171
- executeSwap(fromTokenAddress: string, toTokenAddress: string, amount: string, slippagePercentage?: string): Promise<{
172
- data: any;
173
- }>;
174
- getOpenOceanQuote(fromToken: Address, toToken: Address, amount: string): Promise<OpenOceanQuote>;
175
- swapOnOpenOcean(fromToken: Address, toToken: Address, amount: string, slippage?: number): Promise<{
176
- txHash: string;
177
- outAmount: string;
178
- }>;
179
- get1inchQuote(fromToken: Address, toToken: Address, amount: string): Promise<OneInchQuote>;
180
- swapOn1inch(fromToken: Address, toToken: Address, amount: string, slippage?: number): Promise<{
181
- txHash: string;
182
- dstAmount: string;
183
- }>;
184
- getUniswapQuote(fromToken: Address, toToken: Address, amount: string): Promise<UniswapQuoteResult>;
185
- swapOnUniswap(fromToken: Address, toToken: Address, amount: string, slippage?: number): Promise<{
186
- txHash: string;
187
- amountOut: string;
188
- }>;
189
- lendleSupply(tokenAddress: Address, amount: string): Promise<`0x${string}`>;
190
- lendleWithdraw(tokenAddress: Address, amount: string, to?: Address): Promise<`0x${string}`>;
191
- lendleBorrow(tokenAddress: Address, amount: string, interestRateMode?: 1 | 2, onBehalfOf?: Address): Promise<`0x${string}`>;
192
- lendleRepay(tokenAddress: Address, amount: string, rateMode?: 1 | 2, onBehalfOf?: Address): Promise<`0x${string}`>;
193
- agniSwap(tokenIn: Address, tokenOut: Address, amountIn: string, slippagePercent?: number, feeTier?: number): Promise<`0x${string}`>;
194
- merchantMoeSwap(tokenIn: Address, tokenOut: Address, amountIn: string, slippagePercent?: number): Promise<`0x${string}`>;
195
- getMethTokenAddress(): "0x0000000000000000000000000000000000000000" | "0xcDA86A272531e8640cD7F1a92c01839911B90bb0";
196
- getSquidRoute(fromToken: Address, toToken: Address, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<{
197
- route: {
198
- estimate: {
199
- toAmount: string;
200
- };
201
- transactionRequest: {
202
- targetAddress: string;
203
- data: string;
204
- value: string;
205
- gasLimit: string;
206
- };
207
- };
208
- demo: boolean;
209
- message: string;
210
- } | SquidRoute>;
211
- crossChainSwapViaSquid(fromToken: Address, toToken: Address, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<`0x${string}`>;
212
- }
213
-
214
- declare const sendTransaction: (agent: MNTAgentKit, to: Address$1, amount: string, tokenAddress?: Address$1) => Promise<viem.TransactionReceipt<bigint, number, "success" | "reverted", viem.TransactionType>>;
83
+ declare const sendTransaction: (agent: MNTAgentKit, to: Address, amount: string, tokenAddress?: Address) => Promise<viem.TransactionReceipt<bigint, number, "success" | "reverted", viem.TransactionType>>;
215
84
 
216
85
  /**
217
86
  * Check allowance and get approve tx data if needed
@@ -237,6 +106,24 @@ declare function executeSwap(agent: MNTAgentKit, fromTokenAddress: string, toTok
237
106
  data: any;
238
107
  }>;
239
108
 
109
+ interface OpenOceanQuote {
110
+ inToken: {
111
+ address: string;
112
+ decimals: number;
113
+ symbol: string;
114
+ name: string;
115
+ };
116
+ outToken: {
117
+ address: string;
118
+ decimals: number;
119
+ symbol: string;
120
+ name: string;
121
+ };
122
+ inAmount: string;
123
+ outAmount: string;
124
+ estimatedGas: string;
125
+ }
126
+
240
127
  /**
241
128
  * Get swap quote from OpenOcean
242
129
  * @param agent - MNTAgentKit instance
@@ -261,6 +148,22 @@ declare function swapOnOpenOcean(agent: MNTAgentKit, fromToken: string, toToken:
261
148
  outAmount: string;
262
149
  }>;
263
150
 
151
+ interface OneInchQuote {
152
+ srcToken: {
153
+ address: string;
154
+ symbol: string;
155
+ decimals: number;
156
+ };
157
+ dstToken: {
158
+ address: string;
159
+ symbol: string;
160
+ decimals: number;
161
+ };
162
+ srcAmount: string;
163
+ dstAmount: string;
164
+ gas: number;
165
+ }
166
+
264
167
  /**
265
168
  * Get swap quote from 1inch
266
169
  * @param agent - MNTAgentKit instance
@@ -285,6 +188,33 @@ declare function swapOn1inch(agent: MNTAgentKit, fromToken: string, toToken: str
285
188
  dstAmount: string;
286
189
  }>;
287
190
 
191
+ declare const SWAP_ROUTER_ADDRESS = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45";
192
+ declare const QUOTER_V2_ADDRESS = "0x61fFE014bA17989E743c5F6cB21bF9697530B21e";
193
+ declare const FACTORY_ADDRESS = "0x1F98431c8aD98523631AE4a59f267346ea31F984";
194
+ declare const WMNT_ADDRESS$1 = "0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8";
195
+ declare const NATIVE_TOKEN_ADDRESS$3 = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
196
+ declare const FEE_TIERS$1: {
197
+ readonly LOWEST: 100;
198
+ readonly LOW: 500;
199
+ readonly MEDIUM: 3000;
200
+ readonly HIGH: 10000;
201
+ };
202
+ declare const DEFAULT_POOL_FEE: 3000;
203
+
204
+ declare const index$c_DEFAULT_POOL_FEE: typeof DEFAULT_POOL_FEE;
205
+ declare const index$c_FACTORY_ADDRESS: typeof FACTORY_ADDRESS;
206
+ declare const index$c_QUOTER_V2_ADDRESS: typeof QUOTER_V2_ADDRESS;
207
+ declare const index$c_SWAP_ROUTER_ADDRESS: typeof SWAP_ROUTER_ADDRESS;
208
+ declare namespace index$c {
209
+ export { index$c_DEFAULT_POOL_FEE as DEFAULT_POOL_FEE, index$c_FACTORY_ADDRESS as FACTORY_ADDRESS, FEE_TIERS$1 as FEE_TIERS, NATIVE_TOKEN_ADDRESS$3 as NATIVE_TOKEN_ADDRESS, index$c_QUOTER_V2_ADDRESS as QUOTER_V2_ADDRESS, index$c_SWAP_ROUTER_ADDRESS as SWAP_ROUTER_ADDRESS, WMNT_ADDRESS$1 as WMNT_ADDRESS };
210
+ }
211
+
212
+ interface UniswapQuoteResult {
213
+ amountOut: bigint;
214
+ sqrtPriceX96After: bigint;
215
+ gasEstimate: bigint;
216
+ }
217
+
288
218
  /**
289
219
  * Get swap quote from Uniswap V3
290
220
  * @param agent - MNTAgentKit instance
@@ -322,7 +252,7 @@ declare function swapOnUniswap(agent: MNTAgentKit, fromToken: string, toToken: s
322
252
  * @param slippage - Slippage tolerance percentage (default: 1%)
323
253
  * @returns Transaction hash
324
254
  */
325
- declare function crossChainSwapViaSquid(agent: MNTAgentKit, fromToken: Address$1, toToken: Address$1, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<Hex>;
255
+ declare function crossChainSwapViaSquid(agent: MNTAgentKit, fromToken: Address, toToken: Address, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<Hex>;
326
256
  /**
327
257
  * Get cross-chain swap route from Squid Router
328
258
  * @param agent - MNTAgentKit instance
@@ -334,7 +264,7 @@ declare function crossChainSwapViaSquid(agent: MNTAgentKit, fromToken: Address$1
334
264
  * @param slippage - Slippage tolerance percentage (default: 1%)
335
265
  * @returns Route data including estimated output and fees
336
266
  */
337
- declare function getSquidRoute(agent: MNTAgentKit, fromToken: Address$1, toToken: Address$1, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<{
267
+ declare function getSquidRoute(agent: MNTAgentKit, fromToken: Address, toToken: Address, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<{
338
268
  route: {
339
269
  estimate: {
340
270
  toAmount: string;
@@ -357,7 +287,7 @@ declare function getSquidRoute(agent: MNTAgentKit, fromToken: Address$1, toToken
357
287
  * @param amount - Amount to supply (in smallest units)
358
288
  * @returns Transaction hash
359
289
  */
360
- declare function lendleSupply(agent: MNTAgentKit, tokenAddress: Address$1, amount: string): Promise<Hex>;
290
+ declare function lendleSupply(agent: MNTAgentKit, tokenAddress: Address, amount: string): Promise<Hex>;
361
291
 
362
292
  /**
363
293
  * Withdraw tokens from Lendle Protocol
@@ -367,7 +297,7 @@ declare function lendleSupply(agent: MNTAgentKit, tokenAddress: Address$1, amoun
367
297
  * @param to - Address to receive withdrawn tokens (optional, defaults to agent address)
368
298
  * @returns Transaction hash
369
299
  */
370
- declare function lendleWithdraw(agent: MNTAgentKit, tokenAddress: Address$1, amount: string, to?: Address$1): Promise<Hex>;
300
+ declare function lendleWithdraw(agent: MNTAgentKit, tokenAddress: Address, amount: string, to?: Address): Promise<Hex>;
371
301
 
372
302
  /**
373
303
  * Borrow tokens from Lendle Protocol
@@ -378,7 +308,7 @@ declare function lendleWithdraw(agent: MNTAgentKit, tokenAddress: Address$1, amo
378
308
  * @param onBehalfOf - Address to receive borrowed tokens (optional, defaults to agent address)
379
309
  * @returns Transaction hash
380
310
  */
381
- declare function lendleBorrow(agent: MNTAgentKit, tokenAddress: Address$1, amount: string, interestRateMode?: 1 | 2, onBehalfOf?: Address$1): Promise<Hex>;
311
+ declare function lendleBorrow(agent: MNTAgentKit, tokenAddress: Address, amount: string, interestRateMode?: 1 | 2, onBehalfOf?: Address): Promise<Hex>;
382
312
 
383
313
  /**
384
314
  * Repay borrowed tokens to Lendle Protocol
@@ -389,7 +319,32 @@ declare function lendleBorrow(agent: MNTAgentKit, tokenAddress: Address$1, amoun
389
319
  * @param onBehalfOf - Address whose debt to repay (optional, defaults to agent address)
390
320
  * @returns Transaction hash
391
321
  */
392
- declare function lendleRepay(agent: MNTAgentKit, tokenAddress: Address$1, amount: string, rateMode?: 1 | 2, onBehalfOf?: Address$1): Promise<Hex>;
322
+ declare function lendleRepay(agent: MNTAgentKit, tokenAddress: Address, amount: string, rateMode?: 1 | 2, onBehalfOf?: Address): Promise<Hex>;
323
+
324
+ interface LendlePosition {
325
+ asset: Address;
326
+ symbol: string;
327
+ supplied: bigint;
328
+ stableDebt: bigint;
329
+ variableDebt: bigint;
330
+ totalDebt: bigint;
331
+ liquidityRate: bigint;
332
+ stableBorrowRate: bigint;
333
+ usageAsCollateralEnabled: boolean;
334
+ }
335
+ interface LendlePositionsResult {
336
+ positions: LendlePosition[];
337
+ totalSupplied: bigint;
338
+ totalDebt: bigint;
339
+ }
340
+ /**
341
+ * Get all Lendle positions for a user
342
+ * Returns per-token supply and borrow amounts
343
+ * @param agent - MNTAgentKit instance
344
+ * @param userAddress - User wallet address (optional, defaults to agent account)
345
+ * @returns Array of positions with supply/borrow amounts per asset
346
+ */
347
+ declare function lendleGetPositions(agent: MNTAgentKit, userAddress?: Address): Promise<LendlePositionsResult>;
393
348
 
394
349
  /**
395
350
  * Swap tokens on Agni Finance DEX
@@ -401,7 +356,7 @@ declare function lendleRepay(agent: MNTAgentKit, tokenAddress: Address$1, amount
401
356
  * @param feeTier - Pool fee tier (default: MEDIUM = 0.3%)
402
357
  * @returns Transaction hash
403
358
  */
404
- declare function agniSwap(agent: MNTAgentKit, tokenIn: Address$1, tokenOut: Address$1, amountIn: string, slippagePercent?: number, feeTier?: number): Promise<Hex>;
359
+ declare function agniSwap(agent: MNTAgentKit, tokenIn: Address, tokenOut: Address, amountIn: string, slippagePercent?: number, feeTier?: number): Promise<Hex>;
405
360
 
406
361
  /**
407
362
  * Swap tokens on Merchant Moe DEX
@@ -412,66 +367,1521 @@ declare function agniSwap(agent: MNTAgentKit, tokenIn: Address$1, tokenOut: Addr
412
367
  * @param slippagePercent - Slippage tolerance (default: 0.5%)
413
368
  * @returns Transaction hash
414
369
  */
415
- declare function merchantMoeSwap(agent: MNTAgentKit, tokenIn: Address$1, tokenOut: Address$1, amountIn: string, slippagePercent?: number): Promise<Hex>;
370
+ declare function merchantMoeSwap(agent: MNTAgentKit, tokenIn: Address, tokenOut: Address, amountIn: string, slippagePercent?: number): Promise<Hex>;
416
371
 
417
372
  declare const METH_TOKEN: {
418
373
  readonly mainnet: "0xcDA86A272531e8640cD7F1a92c01839911B90bb0";
419
374
  readonly testnet: "0x0000000000000000000000000000000000000000";
420
375
  };
421
-
422
- declare const index$7_METH_TOKEN: typeof METH_TOKEN;
423
- declare namespace index$7 {
424
- export { index$7_METH_TOKEN as METH_TOKEN };
425
- }
426
-
427
- declare const FACTORY: {
428
- readonly mainnet: "0x25780dc8Fc3cfBD75F33bFDAB65e969b603b2035";
429
- readonly testnet: "0x0000000000000000000000000000000000000000";
430
- };
431
- declare const SWAP_ROUTER: {
432
- readonly mainnet: "0x319B69888b0d11cEC22caA5034e25FfFBDc88421";
433
- readonly testnet: "0x0000000000000000000000000000000000000000";
376
+ declare const WETH_TOKEN: {
377
+ readonly mainnet: "0xdEAddEaDdeadDEadDEADDEAddEADDEAddead1111";
378
+ readonly testnet: "0xdEAddEaDdeadDEadDEADDEAddEADDEAddead1111";
434
379
  };
435
- declare const POSITION_MANAGER: {
436
- readonly mainnet: "0x218bf598d1453383e2f4aa7b14ffb9bfb102d637";
437
- readonly testnet: "0x0000000000000000000000000000000000000000";
380
+ declare const WMNT_TOKEN: {
381
+ readonly mainnet: "0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8";
382
+ readonly testnet: "0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8";
438
383
  };
439
- declare const SWAP_ROUTER_ABI: readonly [{
384
+ declare const NATIVE_MNT_ADDRESS: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
385
+ declare const METH_ABI: readonly [{
440
386
  readonly inputs: readonly [{
441
- readonly components: readonly [{
442
- readonly name: "tokenIn";
443
- readonly type: "address";
444
- }, {
445
- readonly name: "tokenOut";
446
- readonly type: "address";
447
- }, {
448
- readonly name: "fee";
449
- readonly type: "uint24";
450
- }, {
451
- readonly name: "recipient";
452
- readonly type: "address";
453
- }, {
454
- readonly name: "deadline";
455
- readonly type: "uint256";
456
- }, {
457
- readonly name: "amountIn";
458
- readonly type: "uint256";
459
- }, {
460
- readonly name: "amountOutMinimum";
461
- readonly type: "uint256";
462
- }, {
463
- readonly name: "sqrtPriceLimitX96";
464
- readonly type: "uint160";
465
- }];
466
- readonly name: "params";
467
- readonly type: "tuple";
387
+ readonly name: "account";
388
+ readonly type: "address";
468
389
  }];
469
- readonly name: "exactInputSingle";
390
+ readonly name: "balanceOf";
470
391
  readonly outputs: readonly [{
471
- readonly name: "amountOut";
392
+ readonly name: "";
472
393
  readonly type: "uint256";
473
394
  }];
474
- readonly stateMutability: "payable";
395
+ readonly stateMutability: "view";
396
+ readonly type: "function";
397
+ }, {
398
+ readonly inputs: readonly [];
399
+ readonly name: "totalSupply";
400
+ readonly outputs: readonly [{
401
+ readonly name: "";
402
+ readonly type: "uint256";
403
+ }];
404
+ readonly stateMutability: "view";
405
+ readonly type: "function";
406
+ }, {
407
+ readonly inputs: readonly [];
408
+ readonly name: "decimals";
409
+ readonly outputs: readonly [{
410
+ readonly name: "";
411
+ readonly type: "uint8";
412
+ }];
413
+ readonly stateMutability: "view";
414
+ readonly type: "function";
415
+ }, {
416
+ readonly inputs: readonly [];
417
+ readonly name: "symbol";
418
+ readonly outputs: readonly [{
419
+ readonly name: "";
420
+ readonly type: "string";
421
+ }];
422
+ readonly stateMutability: "view";
423
+ readonly type: "function";
424
+ }, {
425
+ readonly inputs: readonly [{
426
+ readonly name: "spender";
427
+ readonly type: "address";
428
+ }, {
429
+ readonly name: "amount";
430
+ readonly type: "uint256";
431
+ }];
432
+ readonly name: "approve";
433
+ readonly outputs: readonly [{
434
+ readonly name: "";
435
+ readonly type: "bool";
436
+ }];
437
+ readonly stateMutability: "nonpayable";
438
+ readonly type: "function";
439
+ }, {
440
+ readonly inputs: readonly [{
441
+ readonly name: "owner";
442
+ readonly type: "address";
443
+ }, {
444
+ readonly name: "spender";
445
+ readonly type: "address";
446
+ }];
447
+ readonly name: "allowance";
448
+ readonly outputs: readonly [{
449
+ readonly name: "";
450
+ readonly type: "uint256";
451
+ }];
452
+ readonly stateMutability: "view";
453
+ readonly type: "function";
454
+ }];
455
+
456
+ declare const index$b_METH_ABI: typeof METH_ABI;
457
+ declare const index$b_METH_TOKEN: typeof METH_TOKEN;
458
+ declare const index$b_NATIVE_MNT_ADDRESS: typeof NATIVE_MNT_ADDRESS;
459
+ declare const index$b_WETH_TOKEN: typeof WETH_TOKEN;
460
+ declare const index$b_WMNT_TOKEN: typeof WMNT_TOKEN;
461
+ declare namespace index$b {
462
+ export { index$b_METH_ABI as METH_ABI, index$b_METH_TOKEN as METH_TOKEN, index$b_NATIVE_MNT_ADDRESS as NATIVE_MNT_ADDRESS, index$b_WETH_TOKEN as WETH_TOKEN, index$b_WMNT_TOKEN as WMNT_TOKEN };
463
+ }
464
+
465
+ interface MethPosition {
466
+ methBalance: bigint;
467
+ wethBalance: bigint;
468
+ wmntBalance: bigint;
469
+ methTokenAddress: Address;
470
+ wethTokenAddress: Address;
471
+ wmntTokenAddress: Address;
472
+ }
473
+ /**
474
+ * Get mETH position for a user
475
+ * Returns mETH balance, WETH balance (for swaps), and WMNT balance
476
+ * @param agent - MNTAgentKit instance
477
+ * @param userAddress - User wallet address (optional, defaults to agent account)
478
+ * @returns mETH position with balances
479
+ */
480
+ declare function methGetPosition(agent: MNTAgentKit, userAddress?: Address): Promise<MethPosition>;
481
+
482
+ /**
483
+ * Swap WETH to mETH using DEX aggregator
484
+ * This is the L2 way to acquire mETH - swap via DEX
485
+ * @param agent - MNTAgentKit instance
486
+ * @param amount - Amount of WETH to swap (in wei as string)
487
+ * @param slippage - Slippage tolerance percentage (default 0.5%)
488
+ * @returns Transaction hash
489
+ */
490
+ declare function swapToMeth(agent: MNTAgentKit, amount: string, slippage?: number): Promise<Hex>;
491
+
492
+ /**
493
+ * Swap mETH to WETH using DEX aggregator
494
+ * This is the L2 way to exit mETH position - swap via DEX
495
+ * @param agent - MNTAgentKit instance
496
+ * @param amount - Amount of mETH to swap (in wei as string)
497
+ * @param slippage - Slippage tolerance percentage (default 0.5%)
498
+ * @returns Transaction hash
499
+ */
500
+ declare function swapFromMeth(agent: MNTAgentKit, amount: string, slippage?: number): Promise<Hex>;
501
+
502
+ /**
503
+ * Close an existing position on PikePerps
504
+ * @param agent - MNTAgentKit instance
505
+ * @param positionId - Position ID to close
506
+ * @returns Transaction hash
507
+ */
508
+ declare function pikeperpsClosePosition(agent: MNTAgentKit, positionId: bigint): Promise<Hex>;
509
+
510
+ interface PikePerpsPosition {
511
+ positionId: bigint;
512
+ token: Address;
513
+ isLong: boolean;
514
+ size: bigint;
515
+ margin: bigint;
516
+ leverage: number;
517
+ entryPrice: bigint;
518
+ entryTime: bigint;
519
+ currentPrice: bigint;
520
+ pnl: bigint;
521
+ isProfit: boolean;
522
+ liquidationPrice: bigint;
523
+ isOpen: boolean;
524
+ }
525
+ /**
526
+ * Get all positions for a user on PikePerps
527
+ * Returns detailed position data including PnL and liquidation prices
528
+ * @param agent - MNTAgentKit instance
529
+ * @param userAddress - User wallet address (optional, defaults to agent account)
530
+ * @returns Array of positions with PnL and liquidation data
531
+ */
532
+ declare function pikeperpsGetPositions(agent: MNTAgentKit, userAddress?: Address): Promise<PikePerpsPosition[]>;
533
+
534
+ interface PikePerpsTrade {
535
+ positionId: bigint;
536
+ trader: Address;
537
+ token: Address;
538
+ isLong: boolean;
539
+ size: bigint;
540
+ margin: bigint;
541
+ leverage: bigint;
542
+ entryPrice: bigint;
543
+ timestamp: number;
544
+ txHash: Hex;
545
+ blockNumber: bigint;
546
+ }
547
+ interface PikePerpsMarketData {
548
+ token: Address;
549
+ currentPrice: bigint;
550
+ hasPrice: boolean;
551
+ isListed: boolean;
552
+ curveProgress: bigint;
553
+ recentTrades: PikePerpsTrade[];
554
+ }
555
+ /**
556
+ * Get market data for a token on PikePerps
557
+ * Returns current price and recent trades
558
+ * @param agent - MNTAgentKit instance
559
+ * @param tokenAddress - Token address to get market data for
560
+ * @param limit - Maximum number of recent trades to return (default 20)
561
+ * @returns Market data with price and recent trades
562
+ */
563
+ declare function pikeperpsGetMarketData(agent: MNTAgentKit, tokenAddress: Address, limit?: number): Promise<PikePerpsMarketData>;
564
+
565
+ declare const PYTH_CONTRACT: {
566
+ readonly mainnet: "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729";
567
+ readonly testnet: "0x98046Bd286715D3B0BC227Dd7a956b83D8978603";
568
+ };
569
+ declare const HERMES_ENDPOINT: {
570
+ readonly mainnet: "https://hermes.pyth.network";
571
+ readonly testnet: "https://hermes.pyth.network";
572
+ };
573
+ declare const PYTH_PRICE_FEED_IDS: {
574
+ readonly "BTC/USD": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43";
575
+ readonly "ETH/USD": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace";
576
+ readonly "SOL/USD": "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d";
577
+ readonly "BNB/USD": "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f";
578
+ readonly "XRP/USD": "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8";
579
+ readonly "ADA/USD": "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d";
580
+ readonly "DOGE/USD": "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c";
581
+ readonly "DOT/USD": "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284571c8e17d6c926346";
582
+ readonly "AVAX/USD": "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7";
583
+ readonly "MATIC/USD": "5de33440f6b7d0d7d70f0a7b2a6c0e0b8e5d2f7c8a9b0c1d2e3f4a5b6c7d8e9f";
584
+ readonly "LINK/USD": "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221";
585
+ readonly "ATOM/USD": "b00b60f88b03a6a625a8d1c048c3f66653edf217439cb6a1cbab0c1c5e8c52bd";
586
+ readonly "LTC/USD": "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54";
587
+ readonly "UNI/USD": "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501";
588
+ readonly "NEAR/USD": "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750";
589
+ readonly "TRX/USD": "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b";
590
+ readonly "ARB/USD": "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5";
591
+ readonly "OP/USD": "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf";
592
+ readonly "MNT/USD": "4e3037c822d852d79af3ac80e35eb420ee3b870dca49f9344a38ef4773fb0585";
593
+ readonly "IMX/USD": "941320a8989414a6d2c757c8c6c52b3e7e0b7e4e4c5bb8a3c8e7a0f3e0f0f0f0";
594
+ readonly "STRK/USD": "6a182399ff70ccf3e06024898942028204125a819e519a335ffa4579e66cd870";
595
+ readonly "AAVE/USD": "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445";
596
+ readonly "CRV/USD": "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8";
597
+ readonly "MKR/USD": "9375299e31c0deb9c6bc378e6329aab44cb48ec655552a70d4b9050346a30378";
598
+ readonly "SNX/USD": "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3";
599
+ readonly "COMP/USD": "4a8e42861cabc5ecb50996f92e7cfa2bce3fd0a2423b0c44c9b423fb2bd25478";
600
+ readonly "LDO/USD": "c63e2a7f37a04e5e614c07238bedb25dcc38927e77a90a4b21a7a2e1d7f0d2e3";
601
+ readonly "1INCH/USD": "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3";
602
+ readonly "SUSHI/USD": "26e4f737fde0263a9eea10ae63ac36dcedab2aaf629f1e31a28a28dd0e0d2b0c";
603
+ readonly "YFI/USD": "425f4b198ab2504936886c1e93511bb6720fbcf2045a4f3c0723bb213846022f";
604
+ readonly "BAL/USD": "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628";
605
+ readonly "CAKE/USD": "2356af9529a1064d1d2a2e3e4ab6d6e6f6e6f6e6f6e6f6e6f6e6f6e6f6e6f6e6";
606
+ readonly "GMX/USD": "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf";
607
+ readonly "PENDLE/USD": "9a4df90b25497f66b1afb012467e316e801ca3d839456db028892fe8c70c8016";
608
+ readonly "JOE/USD": "1e8a156c8a23c1e56f2d9d7f0e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e";
609
+ readonly "USDC/USD": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a";
610
+ readonly "USDT/USD": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b";
611
+ readonly "DAI/USD": "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd";
612
+ readonly "FRAX/USD": "c3d5d8d6d0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0";
613
+ readonly "BUSD/USD": "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814";
614
+ readonly "TUSD/USD": "433faaa801ecda2c0bbfa8f4e2d85fd4c310e2c1e5f8f8e6e5f5f5f5f5f5f5f5";
615
+ readonly "LUSD/USD": "d892ae586f4e0fbeee4d64f29ed6e89b1b3e2e2e2e2e2e2e2e2e2e2e2e2e2e2e";
616
+ readonly "WETH/USD": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace";
617
+ readonly "WBTC/USD": "c9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33";
618
+ readonly "stETH/USD": "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5";
619
+ readonly "cbETH/USD": "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717";
620
+ readonly "rETH/USD": "a0255134973f4fdf2f8f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f";
621
+ readonly "mETH/USD": "4c9c6f9f0cde13fced52dc1927c8c06a91b1a65ab77b9e1ec1c614963ce90dd4";
622
+ readonly "wstETH/USD": "6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784";
623
+ readonly "SHIB/USD": "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a";
624
+ readonly "PEPE/USD": "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4";
625
+ readonly "FLOKI/USD": "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322c28a6f7f4d1a2d2";
626
+ readonly "BONK/USD": "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419";
627
+ readonly "WIF/USD": "4ca4beeca86f0d164160323817a4e42b10010a724c2217c6ee41b54cd4cc61fc";
628
+ readonly "AXS/USD": "b0d8f5e3f3a7c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0";
629
+ readonly "SAND/USD": "f4040ec3e5b71c241a7e1a9a1e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e";
630
+ readonly "MANA/USD": "2b15e4bded7f5e5d5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a";
631
+ readonly "GALA/USD": "e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3";
632
+ readonly "APE/USD": "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864";
633
+ readonly "ENJ/USD": "5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a";
634
+ readonly "FIL/USD": "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e";
635
+ readonly "GRT/USD": "4d1f8dae0d96236fb98e8f47571a70f41c8b8f2f6d6c0e0e0e0e0e0e0e0e0e0e";
636
+ readonly "RNDR/USD": "ab7347771135fc733f8f38db462ba085ed3309955f42554a14fa13e855ac0e2f";
637
+ readonly "INJ/USD": "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592";
638
+ readonly "AR/USD": "8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c";
639
+ readonly "THETA/USD": "4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a";
640
+ readonly "PYTH/USD": "0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff";
641
+ readonly "FET/USD": "b49ee9d8ccf9b6e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0";
642
+ readonly "OCEAN/USD": "2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d";
643
+ readonly "TAO/USD": "410f41de235f2dbdf41f1a808c1e15f6a9e7d6a7b8c9d0e1f2a3b4c5d6e7f8a9";
644
+ readonly "FTT/USD": "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7dbc0d0f3d6f6f6f";
645
+ readonly "CRO/USD": "b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7";
646
+ readonly "OKB/USD": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744";
647
+ readonly "EUR/USD": "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b";
648
+ readonly "GBP/USD": "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1";
649
+ readonly "JPY/USD": "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52";
650
+ readonly "AUD/USD": "67a6f93030f4217f2e8f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f";
651
+ readonly "CAD/USD": "9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a";
652
+ readonly "XAU/USD": "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2";
653
+ readonly "XAG/USD": "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e";
654
+ readonly "WTI/USD": "c9c8e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9";
655
+ readonly "BRENT/USD": "d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8";
656
+ readonly "AAPL/USD": "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688";
657
+ readonly "NVDA/USD": "b1073854ed24cbc755dc527418f52b7d271f6cc967bbf8d8129112b18860a593";
658
+ readonly "TSLA/USD": "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1";
659
+ readonly "GOOGL/USD": "b7e3904c08ddd9c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0";
660
+ readonly "AMZN/USD": "c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6";
661
+ readonly "MSFT/USD": "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ea4b77";
662
+ readonly "META/USD": "a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4";
663
+ readonly "COIN/USD": "9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b";
664
+ readonly "SPY/USD": "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9b3c4d5e6f7a8b9c0d1";
665
+ readonly "QQQ/USD": "2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e";
666
+ };
667
+ declare const PYTH_ABI: readonly [{
668
+ readonly inputs: readonly [{
669
+ readonly name: "id";
670
+ readonly type: "bytes32";
671
+ }];
672
+ readonly name: "getPrice";
673
+ readonly outputs: readonly [{
674
+ readonly components: readonly [{
675
+ readonly name: "price";
676
+ readonly type: "int64";
677
+ }, {
678
+ readonly name: "conf";
679
+ readonly type: "uint64";
680
+ }, {
681
+ readonly name: "expo";
682
+ readonly type: "int32";
683
+ }, {
684
+ readonly name: "publishTime";
685
+ readonly type: "uint256";
686
+ }];
687
+ readonly name: "";
688
+ readonly type: "tuple";
689
+ }];
690
+ readonly stateMutability: "view";
691
+ readonly type: "function";
692
+ }, {
693
+ readonly inputs: readonly [{
694
+ readonly name: "id";
695
+ readonly type: "bytes32";
696
+ }];
697
+ readonly name: "getPriceNoOlderThan";
698
+ readonly outputs: readonly [{
699
+ readonly components: readonly [{
700
+ readonly name: "price";
701
+ readonly type: "int64";
702
+ }, {
703
+ readonly name: "conf";
704
+ readonly type: "uint64";
705
+ }, {
706
+ readonly name: "expo";
707
+ readonly type: "int32";
708
+ }, {
709
+ readonly name: "publishTime";
710
+ readonly type: "uint256";
711
+ }];
712
+ readonly name: "";
713
+ readonly type: "tuple";
714
+ }];
715
+ readonly stateMutability: "view";
716
+ readonly type: "function";
717
+ }, {
718
+ readonly inputs: readonly [{
719
+ readonly name: "id";
720
+ readonly type: "bytes32";
721
+ }, {
722
+ readonly name: "age";
723
+ readonly type: "uint256";
724
+ }];
725
+ readonly name: "getPriceNoOlderThan";
726
+ readonly outputs: readonly [{
727
+ readonly components: readonly [{
728
+ readonly name: "price";
729
+ readonly type: "int64";
730
+ }, {
731
+ readonly name: "conf";
732
+ readonly type: "uint64";
733
+ }, {
734
+ readonly name: "expo";
735
+ readonly type: "int32";
736
+ }, {
737
+ readonly name: "publishTime";
738
+ readonly type: "uint256";
739
+ }];
740
+ readonly name: "";
741
+ readonly type: "tuple";
742
+ }];
743
+ readonly stateMutability: "view";
744
+ readonly type: "function";
745
+ }, {
746
+ readonly inputs: readonly [{
747
+ readonly name: "id";
748
+ readonly type: "bytes32";
749
+ }];
750
+ readonly name: "getPriceUnsafe";
751
+ readonly outputs: readonly [{
752
+ readonly components: readonly [{
753
+ readonly name: "price";
754
+ readonly type: "int64";
755
+ }, {
756
+ readonly name: "conf";
757
+ readonly type: "uint64";
758
+ }, {
759
+ readonly name: "expo";
760
+ readonly type: "int32";
761
+ }, {
762
+ readonly name: "publishTime";
763
+ readonly type: "uint256";
764
+ }];
765
+ readonly name: "";
766
+ readonly type: "tuple";
767
+ }];
768
+ readonly stateMutability: "view";
769
+ readonly type: "function";
770
+ }, {
771
+ readonly inputs: readonly [{
772
+ readonly name: "id";
773
+ readonly type: "bytes32";
774
+ }];
775
+ readonly name: "getEmaPrice";
776
+ readonly outputs: readonly [{
777
+ readonly components: readonly [{
778
+ readonly name: "price";
779
+ readonly type: "int64";
780
+ }, {
781
+ readonly name: "conf";
782
+ readonly type: "uint64";
783
+ }, {
784
+ readonly name: "expo";
785
+ readonly type: "int32";
786
+ }, {
787
+ readonly name: "publishTime";
788
+ readonly type: "uint256";
789
+ }];
790
+ readonly name: "";
791
+ readonly type: "tuple";
792
+ }];
793
+ readonly stateMutability: "view";
794
+ readonly type: "function";
795
+ }, {
796
+ readonly inputs: readonly [{
797
+ readonly name: "updateData";
798
+ readonly type: "bytes[]";
799
+ }];
800
+ readonly name: "updatePriceFeeds";
801
+ readonly outputs: readonly [];
802
+ readonly stateMutability: "payable";
803
+ readonly type: "function";
804
+ }, {
805
+ readonly inputs: readonly [{
806
+ readonly name: "updateData";
807
+ readonly type: "bytes[]";
808
+ }];
809
+ readonly name: "getUpdateFee";
810
+ readonly outputs: readonly [{
811
+ readonly name: "feeAmount";
812
+ readonly type: "uint256";
813
+ }];
814
+ readonly stateMutability: "view";
815
+ readonly type: "function";
816
+ }, {
817
+ readonly inputs: readonly [{
818
+ readonly name: "id";
819
+ readonly type: "bytes32";
820
+ }];
821
+ readonly name: "priceFeedExists";
822
+ readonly outputs: readonly [{
823
+ readonly name: "";
824
+ readonly type: "bool";
825
+ }];
826
+ readonly stateMutability: "view";
827
+ readonly type: "function";
828
+ }, {
829
+ readonly inputs: readonly [{
830
+ readonly name: "updateData";
831
+ readonly type: "bytes[]";
832
+ }, {
833
+ readonly name: "priceIds";
834
+ readonly type: "bytes32[]";
835
+ }, {
836
+ readonly name: "minPublishTime";
837
+ readonly type: "uint64";
838
+ }, {
839
+ readonly name: "maxPublishTime";
840
+ readonly type: "uint64";
841
+ }];
842
+ readonly name: "parsePriceFeedUpdates";
843
+ readonly outputs: readonly [{
844
+ readonly components: readonly [{
845
+ readonly name: "id";
846
+ readonly type: "bytes32";
847
+ }, {
848
+ readonly components: readonly [{
849
+ readonly name: "price";
850
+ readonly type: "int64";
851
+ }, {
852
+ readonly name: "conf";
853
+ readonly type: "uint64";
854
+ }, {
855
+ readonly name: "expo";
856
+ readonly type: "int32";
857
+ }, {
858
+ readonly name: "publishTime";
859
+ readonly type: "uint256";
860
+ }];
861
+ readonly name: "price";
862
+ readonly type: "tuple";
863
+ }, {
864
+ readonly components: readonly [{
865
+ readonly name: "price";
866
+ readonly type: "int64";
867
+ }, {
868
+ readonly name: "conf";
869
+ readonly type: "uint64";
870
+ }, {
871
+ readonly name: "expo";
872
+ readonly type: "int32";
873
+ }, {
874
+ readonly name: "publishTime";
875
+ readonly type: "uint256";
876
+ }];
877
+ readonly name: "emaPrice";
878
+ readonly type: "tuple";
879
+ }];
880
+ readonly name: "";
881
+ readonly type: "tuple[]";
882
+ }];
883
+ readonly stateMutability: "payable";
884
+ readonly type: "function";
885
+ }];
886
+ interface PythPriceData {
887
+ price: bigint;
888
+ conf: bigint;
889
+ expo: number;
890
+ publishTime: bigint;
891
+ }
892
+ interface PythPriceResponse {
893
+ priceFeedId: string;
894
+ pair: string;
895
+ price: string;
896
+ confidence: string;
897
+ exponent: number;
898
+ publishTime: number;
899
+ formattedPrice: string;
900
+ }
901
+
902
+ declare const index$a_HERMES_ENDPOINT: typeof HERMES_ENDPOINT;
903
+ declare const index$a_PYTH_ABI: typeof PYTH_ABI;
904
+ declare const index$a_PYTH_CONTRACT: typeof PYTH_CONTRACT;
905
+ declare const index$a_PYTH_PRICE_FEED_IDS: typeof PYTH_PRICE_FEED_IDS;
906
+ type index$a_PythPriceData = PythPriceData;
907
+ type index$a_PythPriceResponse = PythPriceResponse;
908
+ declare namespace index$a {
909
+ export { index$a_HERMES_ENDPOINT as HERMES_ENDPOINT, index$a_PYTH_ABI as PYTH_ABI, index$a_PYTH_CONTRACT as PYTH_CONTRACT, index$a_PYTH_PRICE_FEED_IDS as PYTH_PRICE_FEED_IDS, type index$a_PythPriceData as PythPriceData, type index$a_PythPriceResponse as PythPriceResponse };
910
+ }
911
+
912
+ /**
913
+ * Get price data from Pyth Network for a specific price feed
914
+ * @param agent - MNTAgentKit instance
915
+ * @param priceFeedIdOrPair - Either a price feed ID (hex string) or a pair name like "ETH/USD"
916
+ * @returns Price data with formatted price
917
+ */
918
+ declare function pythGetPrice(agent: MNTAgentKit, priceFeedIdOrPair: string): Promise<PythPriceResponse>;
919
+ /**
920
+ * Get EMA (Exponential Moving Average) price from Pyth
921
+ * @param agent - MNTAgentKit instance
922
+ * @param priceFeedIdOrPair - Either a price feed ID or pair name
923
+ * @returns EMA price data
924
+ */
925
+ declare function pythGetEmaPrice(agent: MNTAgentKit, priceFeedIdOrPair: string): Promise<PythPriceResponse>;
926
+
927
+ /**
928
+ * Get multiple prices from Pyth in a single call
929
+ * @param agent - MNTAgentKit instance
930
+ * @param pairs - Array of pair names or price feed IDs
931
+ * @returns Array of price responses
932
+ */
933
+ declare function pythGetMultiplePrices(agent: MNTAgentKit, pairs: string[]): Promise<PythPriceResponse[]>;
934
+ /**
935
+ * Get all supported Pyth price feed IDs
936
+ * @returns Object mapping pair names to price feed IDs
937
+ */
938
+ declare function pythGetSupportedPriceFeeds(): Record<string, string>;
939
+ /**
940
+ * Check if a price feed exists on Pyth
941
+ * @param agent - MNTAgentKit instance
942
+ * @param priceFeedIdOrPair - Price feed ID or pair name
943
+ * @returns Boolean indicating if feed exists
944
+ */
945
+ declare function pythPriceFeedExists(agent: MNTAgentKit, priceFeedIdOrPair: string): Promise<boolean>;
946
+
947
+ declare const ERC20_ABI: readonly [{
948
+ readonly inputs: readonly [];
949
+ readonly name: "name";
950
+ readonly outputs: readonly [{
951
+ readonly name: "";
952
+ readonly type: "string";
953
+ }];
954
+ readonly stateMutability: "view";
955
+ readonly type: "function";
956
+ }, {
957
+ readonly inputs: readonly [];
958
+ readonly name: "symbol";
959
+ readonly outputs: readonly [{
960
+ readonly name: "";
961
+ readonly type: "string";
962
+ }];
963
+ readonly stateMutability: "view";
964
+ readonly type: "function";
965
+ }, {
966
+ readonly inputs: readonly [];
967
+ readonly name: "decimals";
968
+ readonly outputs: readonly [{
969
+ readonly name: "";
970
+ readonly type: "uint8";
971
+ }];
972
+ readonly stateMutability: "view";
973
+ readonly type: "function";
974
+ }, {
975
+ readonly inputs: readonly [];
976
+ readonly name: "totalSupply";
977
+ readonly outputs: readonly [{
978
+ readonly name: "";
979
+ readonly type: "uint256";
980
+ }];
981
+ readonly stateMutability: "view";
982
+ readonly type: "function";
983
+ }, {
984
+ readonly inputs: readonly [{
985
+ readonly name: "account";
986
+ readonly type: "address";
987
+ }];
988
+ readonly name: "balanceOf";
989
+ readonly outputs: readonly [{
990
+ readonly name: "";
991
+ readonly type: "uint256";
992
+ }];
993
+ readonly stateMutability: "view";
994
+ readonly type: "function";
995
+ }, {
996
+ readonly inputs: readonly [{
997
+ readonly name: "to";
998
+ readonly type: "address";
999
+ }, {
1000
+ readonly name: "amount";
1001
+ readonly type: "uint256";
1002
+ }];
1003
+ readonly name: "transfer";
1004
+ readonly outputs: readonly [{
1005
+ readonly name: "";
1006
+ readonly type: "bool";
1007
+ }];
1008
+ readonly stateMutability: "nonpayable";
1009
+ readonly type: "function";
1010
+ }];
1011
+ type TokenType = "standard" | "rwa";
1012
+ interface TokenConfig {
1013
+ name: string;
1014
+ symbol: string;
1015
+ supply: string;
1016
+ decimals?: number;
1017
+ tokenType?: TokenType;
1018
+ assetType?: string;
1019
+ assetId?: string;
1020
+ }
1021
+ interface TokenDeploymentResult {
1022
+ tokenAddress: string;
1023
+ txHash: string;
1024
+ name: string;
1025
+ symbol: string;
1026
+ decimals: number;
1027
+ totalSupply: string;
1028
+ mintedTo: string;
1029
+ tokenType: TokenType;
1030
+ assetType?: string;
1031
+ assetId?: string;
1032
+ }
1033
+ interface TokenInfo {
1034
+ address: string;
1035
+ name: string;
1036
+ symbol: string;
1037
+ decimals: number;
1038
+ totalSupply: string;
1039
+ balance?: string;
1040
+ }
1041
+
1042
+ declare const index$9_ERC20_ABI: typeof ERC20_ABI;
1043
+ type index$9_TokenConfig = TokenConfig;
1044
+ type index$9_TokenDeploymentResult = TokenDeploymentResult;
1045
+ type index$9_TokenInfo = TokenInfo;
1046
+ type index$9_TokenType = TokenType;
1047
+ declare namespace index$9 {
1048
+ export { index$9_ERC20_ABI as ERC20_ABI, type index$9_TokenConfig as TokenConfig, type index$9_TokenDeploymentResult as TokenDeploymentResult, type index$9_TokenInfo as TokenInfo, type index$9_TokenType as TokenType };
1049
+ }
1050
+
1051
+ /**
1052
+ * Deploy a new token (ERC20 or RWA) - mints supply to caller's address
1053
+ * @param agent - MNTAgentKit instance
1054
+ * @param name - Token name
1055
+ * @param symbol - Token symbol
1056
+ * @param supply - Total supply (human readable, e.g., "1000000")
1057
+ * @param tokenType - "standard" or "rwa"
1058
+ * @param assetType - For RWA: type of underlying asset
1059
+ * @param assetId - For RWA: external asset identifier
1060
+ */
1061
+ declare function deployToken(agent: MNTAgentKit, name: string, symbol: string, supply: string, tokenType?: TokenType, assetType?: string, assetId?: string): Promise<TokenDeploymentResult>;
1062
+ /**
1063
+ * Deploy a standard ERC20 token
1064
+ */
1065
+ declare function deployStandardToken(agent: MNTAgentKit, name: string, symbol: string, supply: string): Promise<TokenDeploymentResult>;
1066
+ /**
1067
+ * Deploy an RWA (Real World Asset) token
1068
+ * @param agent - MNTAgentKit instance
1069
+ * @param name - Token name (e.g., "Manhattan Property Token")
1070
+ * @param symbol - Token symbol (e.g., "MPT")
1071
+ * @param supply - Total supply representing fractional ownership
1072
+ * @param assetType - Asset category (e.g., "Real Estate", "Commodities", "Securities", "Art")
1073
+ * @param assetId - External reference ID for the underlying asset
1074
+ */
1075
+ declare function deployRWAToken(agent: MNTAgentKit, name: string, symbol: string, supply: string, assetType: string, assetId?: string): Promise<TokenDeploymentResult>;
1076
+
1077
+ /**
1078
+ * Get token information
1079
+ */
1080
+ declare function getTokenInfo(agent: MNTAgentKit, tokenAddress: Address, holder?: Address): Promise<TokenInfo>;
1081
+ /**
1082
+ * Get token balance
1083
+ */
1084
+ declare function getTokenBalance(agent: MNTAgentKit, tokenAddress: Address, holder?: Address): Promise<string>;
1085
+
1086
+ /**
1087
+ * Transfer tokens
1088
+ */
1089
+ declare function transferToken(agent: MNTAgentKit, tokenAddress: Address, to: Address, amount: string): Promise<Hex>;
1090
+
1091
+ declare const ERC721_ABI: readonly [{
1092
+ readonly inputs: readonly [{
1093
+ readonly name: "name";
1094
+ readonly type: "string";
1095
+ }, {
1096
+ readonly name: "symbol";
1097
+ readonly type: "string";
1098
+ }, {
1099
+ readonly name: "baseURI";
1100
+ readonly type: "string";
1101
+ }, {
1102
+ readonly name: "maxSupply";
1103
+ readonly type: "uint256";
1104
+ }];
1105
+ readonly stateMutability: "nonpayable";
1106
+ readonly type: "constructor";
1107
+ }, {
1108
+ readonly inputs: readonly [];
1109
+ readonly name: "name";
1110
+ readonly outputs: readonly [{
1111
+ readonly name: "";
1112
+ readonly type: "string";
1113
+ }];
1114
+ readonly stateMutability: "view";
1115
+ readonly type: "function";
1116
+ }, {
1117
+ readonly inputs: readonly [];
1118
+ readonly name: "symbol";
1119
+ readonly outputs: readonly [{
1120
+ readonly name: "";
1121
+ readonly type: "string";
1122
+ }];
1123
+ readonly stateMutability: "view";
1124
+ readonly type: "function";
1125
+ }, {
1126
+ readonly inputs: readonly [];
1127
+ readonly name: "totalSupply";
1128
+ readonly outputs: readonly [{
1129
+ readonly name: "";
1130
+ readonly type: "uint256";
1131
+ }];
1132
+ readonly stateMutability: "view";
1133
+ readonly type: "function";
1134
+ }, {
1135
+ readonly inputs: readonly [{
1136
+ readonly name: "tokenId";
1137
+ readonly type: "uint256";
1138
+ }];
1139
+ readonly name: "tokenURI";
1140
+ readonly outputs: readonly [{
1141
+ readonly name: "";
1142
+ readonly type: "string";
1143
+ }];
1144
+ readonly stateMutability: "view";
1145
+ readonly type: "function";
1146
+ }, {
1147
+ readonly inputs: readonly [{
1148
+ readonly name: "tokenId";
1149
+ readonly type: "uint256";
1150
+ }];
1151
+ readonly name: "ownerOf";
1152
+ readonly outputs: readonly [{
1153
+ readonly name: "";
1154
+ readonly type: "address";
1155
+ }];
1156
+ readonly stateMutability: "view";
1157
+ readonly type: "function";
1158
+ }, {
1159
+ readonly inputs: readonly [{
1160
+ readonly name: "owner";
1161
+ readonly type: "address";
1162
+ }];
1163
+ readonly name: "balanceOf";
1164
+ readonly outputs: readonly [{
1165
+ readonly name: "";
1166
+ readonly type: "uint256";
1167
+ }];
1168
+ readonly stateMutability: "view";
1169
+ readonly type: "function";
1170
+ }, {
1171
+ readonly inputs: readonly [{
1172
+ readonly name: "tokenId";
1173
+ readonly type: "uint256";
1174
+ }];
1175
+ readonly name: "getApproved";
1176
+ readonly outputs: readonly [{
1177
+ readonly name: "";
1178
+ readonly type: "address";
1179
+ }];
1180
+ readonly stateMutability: "view";
1181
+ readonly type: "function";
1182
+ }, {
1183
+ readonly inputs: readonly [{
1184
+ readonly name: "owner";
1185
+ readonly type: "address";
1186
+ }, {
1187
+ readonly name: "operator";
1188
+ readonly type: "address";
1189
+ }];
1190
+ readonly name: "isApprovedForAll";
1191
+ readonly outputs: readonly [{
1192
+ readonly name: "";
1193
+ readonly type: "bool";
1194
+ }];
1195
+ readonly stateMutability: "view";
1196
+ readonly type: "function";
1197
+ }, {
1198
+ readonly inputs: readonly [{
1199
+ readonly name: "to";
1200
+ readonly type: "address";
1201
+ }];
1202
+ readonly name: "mint";
1203
+ readonly outputs: readonly [{
1204
+ readonly name: "";
1205
+ readonly type: "uint256";
1206
+ }];
1207
+ readonly stateMutability: "nonpayable";
1208
+ readonly type: "function";
1209
+ }, {
1210
+ readonly inputs: readonly [{
1211
+ readonly name: "to";
1212
+ readonly type: "address";
1213
+ }, {
1214
+ readonly name: "quantity";
1215
+ readonly type: "uint256";
1216
+ }];
1217
+ readonly name: "batchMint";
1218
+ readonly outputs: readonly [{
1219
+ readonly name: "startTokenId";
1220
+ readonly type: "uint256";
1221
+ }];
1222
+ readonly stateMutability: "nonpayable";
1223
+ readonly type: "function";
1224
+ }, {
1225
+ readonly inputs: readonly [{
1226
+ readonly name: "to";
1227
+ readonly type: "address";
1228
+ }, {
1229
+ readonly name: "tokenId";
1230
+ readonly type: "uint256";
1231
+ }];
1232
+ readonly name: "approve";
1233
+ readonly outputs: readonly [];
1234
+ readonly stateMutability: "nonpayable";
1235
+ readonly type: "function";
1236
+ }, {
1237
+ readonly inputs: readonly [{
1238
+ readonly name: "operator";
1239
+ readonly type: "address";
1240
+ }, {
1241
+ readonly name: "approved";
1242
+ readonly type: "bool";
1243
+ }];
1244
+ readonly name: "setApprovalForAll";
1245
+ readonly outputs: readonly [];
1246
+ readonly stateMutability: "nonpayable";
1247
+ readonly type: "function";
1248
+ }, {
1249
+ readonly inputs: readonly [{
1250
+ readonly name: "from";
1251
+ readonly type: "address";
1252
+ }, {
1253
+ readonly name: "to";
1254
+ readonly type: "address";
1255
+ }, {
1256
+ readonly name: "tokenId";
1257
+ readonly type: "uint256";
1258
+ }];
1259
+ readonly name: "transferFrom";
1260
+ readonly outputs: readonly [];
1261
+ readonly stateMutability: "nonpayable";
1262
+ readonly type: "function";
1263
+ }, {
1264
+ readonly inputs: readonly [{
1265
+ readonly name: "from";
1266
+ readonly type: "address";
1267
+ }, {
1268
+ readonly name: "to";
1269
+ readonly type: "address";
1270
+ }, {
1271
+ readonly name: "tokenId";
1272
+ readonly type: "uint256";
1273
+ }];
1274
+ readonly name: "safeTransferFrom";
1275
+ readonly outputs: readonly [];
1276
+ readonly stateMutability: "nonpayable";
1277
+ readonly type: "function";
1278
+ }, {
1279
+ readonly inputs: readonly [{
1280
+ readonly name: "from";
1281
+ readonly type: "address";
1282
+ }, {
1283
+ readonly name: "to";
1284
+ readonly type: "address";
1285
+ }, {
1286
+ readonly name: "tokenId";
1287
+ readonly type: "uint256";
1288
+ }, {
1289
+ readonly name: "data";
1290
+ readonly type: "bytes";
1291
+ }];
1292
+ readonly name: "safeTransferFrom";
1293
+ readonly outputs: readonly [];
1294
+ readonly stateMutability: "nonpayable";
1295
+ readonly type: "function";
1296
+ }, {
1297
+ readonly anonymous: false;
1298
+ readonly inputs: readonly [{
1299
+ readonly indexed: true;
1300
+ readonly name: "from";
1301
+ readonly type: "address";
1302
+ }, {
1303
+ readonly indexed: true;
1304
+ readonly name: "to";
1305
+ readonly type: "address";
1306
+ }, {
1307
+ readonly indexed: true;
1308
+ readonly name: "tokenId";
1309
+ readonly type: "uint256";
1310
+ }];
1311
+ readonly name: "Transfer";
1312
+ readonly type: "event";
1313
+ }, {
1314
+ readonly anonymous: false;
1315
+ readonly inputs: readonly [{
1316
+ readonly indexed: true;
1317
+ readonly name: "owner";
1318
+ readonly type: "address";
1319
+ }, {
1320
+ readonly indexed: true;
1321
+ readonly name: "approved";
1322
+ readonly type: "address";
1323
+ }, {
1324
+ readonly indexed: true;
1325
+ readonly name: "tokenId";
1326
+ readonly type: "uint256";
1327
+ }];
1328
+ readonly name: "Approval";
1329
+ readonly type: "event";
1330
+ }, {
1331
+ readonly anonymous: false;
1332
+ readonly inputs: readonly [{
1333
+ readonly indexed: true;
1334
+ readonly name: "owner";
1335
+ readonly type: "address";
1336
+ }, {
1337
+ readonly indexed: true;
1338
+ readonly name: "operator";
1339
+ readonly type: "address";
1340
+ }, {
1341
+ readonly indexed: false;
1342
+ readonly name: "approved";
1343
+ readonly type: "bool";
1344
+ }];
1345
+ readonly name: "ApprovalForAll";
1346
+ readonly type: "event";
1347
+ }];
1348
+ interface NFTCollectionConfig {
1349
+ name: string;
1350
+ symbol: string;
1351
+ baseURI: string;
1352
+ maxSupply?: number;
1353
+ description?: string;
1354
+ }
1355
+ interface NFTCollectionDeploymentResult {
1356
+ collectionAddress: string;
1357
+ txHash: string;
1358
+ name: string;
1359
+ symbol: string;
1360
+ baseURI: string;
1361
+ maxSupply: number;
1362
+ deployer: string;
1363
+ }
1364
+ interface NFTMintResult {
1365
+ txHash: string;
1366
+ tokenId: string;
1367
+ collectionAddress: string;
1368
+ to: string;
1369
+ }
1370
+ interface NFTCollectionInfo {
1371
+ address: string;
1372
+ name: string;
1373
+ symbol: string;
1374
+ totalSupply: string;
1375
+ balanceOf?: string;
1376
+ }
1377
+ interface NFTTokenInfo {
1378
+ collectionAddress: string;
1379
+ tokenId: string;
1380
+ owner: string;
1381
+ tokenURI: string;
1382
+ }
1383
+
1384
+ declare const index$8_ERC721_ABI: typeof ERC721_ABI;
1385
+ type index$8_NFTCollectionConfig = NFTCollectionConfig;
1386
+ type index$8_NFTCollectionDeploymentResult = NFTCollectionDeploymentResult;
1387
+ type index$8_NFTCollectionInfo = NFTCollectionInfo;
1388
+ type index$8_NFTMintResult = NFTMintResult;
1389
+ type index$8_NFTTokenInfo = NFTTokenInfo;
1390
+ declare namespace index$8 {
1391
+ export { index$8_ERC721_ABI as ERC721_ABI, type index$8_NFTCollectionConfig as NFTCollectionConfig, type index$8_NFTCollectionDeploymentResult as NFTCollectionDeploymentResult, type index$8_NFTCollectionInfo as NFTCollectionInfo, type index$8_NFTMintResult as NFTMintResult, type index$8_NFTTokenInfo as NFTTokenInfo };
1392
+ }
1393
+
1394
+ /**
1395
+ * Deploy a new ERC721 NFT collection on Mantle Network
1396
+ * @param agent - MNTAgentKit instance
1397
+ * @param config - NFT collection configuration
1398
+ * @returns Collection deployment result with contract address
1399
+ */
1400
+ declare function deployNFTCollection(agent: MNTAgentKit, config: NFTCollectionConfig): Promise<NFTCollectionDeploymentResult>;
1401
+ /**
1402
+ * Deploy an NFT collection with preset configurations
1403
+ * @param agent - MNTAgentKit instance
1404
+ * @param preset - Preset type: "pfp" (10000), "art" (1000), "membership" (100)
1405
+ * @param name - Collection name
1406
+ * @param symbol - Collection symbol
1407
+ * @param baseURI - Base URI for metadata
1408
+ * @returns Collection deployment result
1409
+ */
1410
+ declare function deployNFTCollectionWithPreset(agent: MNTAgentKit, preset: "pfp" | "art" | "membership" | "unlimited", name: string, symbol: string, baseURI: string): Promise<NFTCollectionDeploymentResult>;
1411
+
1412
+ /**
1413
+ * Mint a single NFT from a collection
1414
+ * @param agent - MNTAgentKit instance
1415
+ * @param collectionAddress - NFT collection contract address
1416
+ * @param to - Recipient address (defaults to agent address)
1417
+ * @returns Mint result with token ID
1418
+ */
1419
+ declare function mintNFT(agent: MNTAgentKit, collectionAddress: Address, to?: Address): Promise<NFTMintResult>;
1420
+ /**
1421
+ * Batch mint multiple NFTs from a collection
1422
+ * @param agent - MNTAgentKit instance
1423
+ * @param collectionAddress - NFT collection contract address
1424
+ * @param to - Recipient address
1425
+ * @param quantity - Number of NFTs to mint
1426
+ * @returns Mint result with starting token ID
1427
+ */
1428
+ declare function batchMintNFT(agent: MNTAgentKit, collectionAddress: Address, to: Address, quantity: number): Promise<{
1429
+ txHash: Hex;
1430
+ startTokenId: string;
1431
+ quantity: number;
1432
+ }>;
1433
+
1434
+ /**
1435
+ * Get information about an NFT collection
1436
+ * @param agent - MNTAgentKit instance
1437
+ * @param collectionAddress - NFT collection contract address
1438
+ * @param holderAddress - Optional address to get balance for
1439
+ * @returns Collection information
1440
+ */
1441
+ declare function getNFTCollectionInfo(agent: MNTAgentKit, collectionAddress: Address, holderAddress?: Address): Promise<NFTCollectionInfo>;
1442
+ /**
1443
+ * Get information about a specific NFT token
1444
+ * @param agent - MNTAgentKit instance
1445
+ * @param collectionAddress - NFT collection contract address
1446
+ * @param tokenId - Token ID
1447
+ * @returns Token information
1448
+ */
1449
+ declare function getNFTTokenInfo(agent: MNTAgentKit, collectionAddress: Address, tokenId: string): Promise<NFTTokenInfo>;
1450
+ /**
1451
+ * Get NFT balance for an address
1452
+ * @param agent - MNTAgentKit instance
1453
+ * @param collectionAddress - NFT collection contract address
1454
+ * @param holderAddress - Address to check balance for (defaults to agent address)
1455
+ * @returns Balance as string
1456
+ */
1457
+ declare function getNFTBalance(agent: MNTAgentKit, collectionAddress: Address, holderAddress?: Address): Promise<string>;
1458
+ /**
1459
+ * Check if an address owns a specific NFT
1460
+ * @param agent - MNTAgentKit instance
1461
+ * @param collectionAddress - NFT collection contract address
1462
+ * @param tokenId - Token ID to check
1463
+ * @param ownerAddress - Address to verify ownership
1464
+ * @returns Boolean indicating ownership
1465
+ */
1466
+ declare function isNFTOwner(agent: MNTAgentKit, collectionAddress: Address, tokenId: string, ownerAddress?: Address): Promise<boolean>;
1467
+
1468
+ /**
1469
+ * Transfer an NFT to another address
1470
+ * @param agent - MNTAgentKit instance
1471
+ * @param collectionAddress - NFT collection contract address
1472
+ * @param to - Recipient address
1473
+ * @param tokenId - Token ID to transfer
1474
+ * @returns Transaction hash
1475
+ */
1476
+ declare function transferNFT(agent: MNTAgentKit, collectionAddress: Address, to: Address, tokenId: string): Promise<Hex>;
1477
+ /**
1478
+ * Safe transfer an NFT (checks if recipient can receive)
1479
+ * @param agent - MNTAgentKit instance
1480
+ * @param collectionAddress - NFT collection contract address
1481
+ * @param to - Recipient address
1482
+ * @param tokenId - Token ID to transfer
1483
+ * @returns Transaction hash
1484
+ */
1485
+ declare function safeTransferNFT(agent: MNTAgentKit, collectionAddress: Address, to: Address, tokenId: string): Promise<Hex>;
1486
+ /**
1487
+ * Approve an address to transfer a specific NFT
1488
+ * @param agent - MNTAgentKit instance
1489
+ * @param collectionAddress - NFT collection contract address
1490
+ * @param approved - Address to approve
1491
+ * @param tokenId - Token ID to approve
1492
+ * @returns Transaction hash
1493
+ */
1494
+ declare function approveNFT(agent: MNTAgentKit, collectionAddress: Address, approved: Address, tokenId: string): Promise<Hex>;
1495
+ /**
1496
+ * Set approval for all NFTs in a collection
1497
+ * @param agent - MNTAgentKit instance
1498
+ * @param collectionAddress - NFT collection contract address
1499
+ * @param operator - Operator address
1500
+ * @param approved - Whether to approve or revoke
1501
+ * @returns Transaction hash
1502
+ */
1503
+ declare function setApprovalForAllNFT(agent: MNTAgentKit, collectionAddress: Address, operator: Address, approved: boolean): Promise<Hex>;
1504
+
1505
+ /**
1506
+ * Platform Configuration & Validation
1507
+ *
1508
+ * Validates APP_ID with Mantle platform API
1509
+ */
1510
+ /** Project configuration from platform */
1511
+ interface ProjectConfig {
1512
+ appId: string;
1513
+ name: string;
1514
+ payTo: string;
1515
+ network: string;
1516
+ status: string;
1517
+ }
1518
+ /**
1519
+ * Initialize platform validation
1520
+ *
1521
+ * Reads APP_ID from environment and validates with platform API.
1522
+ * Uses singleton pattern - multiple calls return same promise.
1523
+ *
1524
+ * @returns Project configuration from platform
1525
+ * @throws Error if APP_ID is not set or validation fails
1526
+ */
1527
+ declare function initializePlatform(): Promise<ProjectConfig>;
1528
+ /**
1529
+ * Get cached project configuration
1530
+ *
1531
+ * @throws Error if platform not initialized
1532
+ */
1533
+ declare function getProjectConfig(): ProjectConfig;
1534
+
1535
+ declare class MNTAgentKit {
1536
+ account: PrivateKeyAccount;
1537
+ client: WalletClient<Transport, Chain, PrivateKeyAccount> & PublicActions & Erc7811Actions;
1538
+ chain: "testnet" | "mainnet";
1539
+ demo: boolean;
1540
+ projectConfig?: ProjectConfig;
1541
+ constructor(privateKey: Address$1, chain: "mainnet" | "testnet" | "testnet-demo");
1542
+ /**
1543
+ * Initialize the agent with platform validation
1544
+ *
1545
+ * Validates APP_ID with the platform API.
1546
+ * Must be called after creating the agent instance.
1547
+ *
1548
+ * @returns The initialized agent instance
1549
+ * @throws Error if APP_ID is not set or validation fails
1550
+ *
1551
+ * @example
1552
+ * ```typescript
1553
+ * const agent = new MNTAgentKit(privateKey, "mainnet");
1554
+ * await agent.initialize(); // Validates APP_ID
1555
+ * ```
1556
+ */
1557
+ initialize(): Promise<MNTAgentKit>;
1558
+ sendTransaction(to: Address$1, amount: string): Promise<viem.TransactionReceipt<bigint, number, "success" | "reverted", viem.TransactionType>>;
1559
+ getSwapQuote(fromTokenAddress: string, toTokenAddress: string, amount: string, slippagePercentage?: string): Promise<any>;
1560
+ executeSwap(fromTokenAddress: string, toTokenAddress: string, amount: string, slippagePercentage?: string): Promise<{
1561
+ data: any;
1562
+ }>;
1563
+ getOpenOceanQuote(fromToken: Address$1, toToken: Address$1, amount: string): Promise<OpenOceanQuote>;
1564
+ swapOnOpenOcean(fromToken: Address$1, toToken: Address$1, amount: string, slippage?: number): Promise<{
1565
+ txHash: string;
1566
+ outAmount: string;
1567
+ }>;
1568
+ get1inchQuote(fromToken: Address$1, toToken: Address$1, amount: string): Promise<OneInchQuote>;
1569
+ swapOn1inch(fromToken: Address$1, toToken: Address$1, amount: string, slippage?: number): Promise<{
1570
+ txHash: string;
1571
+ dstAmount: string;
1572
+ }>;
1573
+ getUniswapQuote(fromToken: Address$1, toToken: Address$1, amount: string): Promise<UniswapQuoteResult>;
1574
+ swapOnUniswap(fromToken: Address$1, toToken: Address$1, amount: string, slippage?: number): Promise<{
1575
+ txHash: string;
1576
+ amountOut: string;
1577
+ }>;
1578
+ lendleSupply(tokenAddress: Address$1, amount: string): Promise<`0x${string}`>;
1579
+ lendleWithdraw(tokenAddress: Address$1, amount: string, to?: Address$1): Promise<`0x${string}`>;
1580
+ lendleBorrow(tokenAddress: Address$1, amount: string, interestRateMode?: 1 | 2, onBehalfOf?: Address$1): Promise<`0x${string}`>;
1581
+ lendleRepay(tokenAddress: Address$1, amount: string, rateMode?: 1 | 2, onBehalfOf?: Address$1): Promise<`0x${string}`>;
1582
+ /**
1583
+ * Get user account data from Lendle LendingPool
1584
+ * Returns overall position including total collateral, debt, and health factor
1585
+ * @param userAddress - User wallet address (optional, defaults to agent account)
1586
+ * @returns User account data with collateral, debt, available borrows, and health factor
1587
+ */
1588
+ lendleGetUserAccountData(userAddress?: Address$1): Promise<UserAccountData>;
1589
+ /**
1590
+ * Get all Lendle positions for a user (per-token breakdown)
1591
+ * Returns detailed supply and borrow amounts for each asset
1592
+ * @param userAddress - User wallet address (optional, defaults to agent account)
1593
+ * @returns Array of positions with supply/borrow amounts per asset
1594
+ */
1595
+ lendleGetPositions(userAddress?: Address$1): Promise<LendlePositionsResult>;
1596
+ agniSwap(tokenIn: Address$1, tokenOut: Address$1, amountIn: string, slippagePercent?: number, feeTier?: number): Promise<`0x${string}`>;
1597
+ merchantMoeSwap(tokenIn: Address$1, tokenOut: Address$1, amountIn: string, slippagePercent?: number): Promise<`0x${string}`>;
1598
+ getMethTokenAddress(): "0x0000000000000000000000000000000000000000" | "0xcDA86A272531e8640cD7F1a92c01839911B90bb0";
1599
+ /**
1600
+ * Get mETH staking position for a user
1601
+ * Returns mETH balance and WETH balance for comparison
1602
+ * @param userAddress - User wallet address (optional, defaults to agent account)
1603
+ * @returns mETH position with balances
1604
+ */
1605
+ methGetPosition(userAddress?: Address$1): Promise<MethPosition>;
1606
+ /**
1607
+ * Swap WETH to mETH using DEX aggregator
1608
+ * @param amount - Amount of WETH to swap (in wei as string)
1609
+ * @param slippage - Slippage tolerance percentage (default 0.5%)
1610
+ * @returns Transaction hash
1611
+ */
1612
+ swapToMeth(amount: string, slippage?: number): Promise<`0x${string}`>;
1613
+ /**
1614
+ * Swap mETH to WETH using DEX aggregator
1615
+ * @param amount - Amount of mETH to swap (in wei as string)
1616
+ * @param slippage - Slippage tolerance percentage (default 0.5%)
1617
+ * @returns Transaction hash
1618
+ */
1619
+ swapFromMeth(amount: string, slippage?: number): Promise<`0x${string}`>;
1620
+ getSquidRoute(fromToken: Address$1, toToken: Address$1, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<{
1621
+ route: {
1622
+ estimate: {
1623
+ toAmount: string;
1624
+ };
1625
+ transactionRequest: {
1626
+ targetAddress: string;
1627
+ data: string;
1628
+ value: string;
1629
+ gasLimit: string;
1630
+ };
1631
+ };
1632
+ demo: boolean;
1633
+ message: string;
1634
+ } | SquidRoute>;
1635
+ crossChainSwapViaSquid(fromToken: Address$1, toToken: Address$1, fromChain: number, toChain: number, amount: string, slippage?: number): Promise<`0x${string}`>;
1636
+ /**
1637
+ * Open a long position on PikePerps
1638
+ * @param tokenAddress - Token to trade (meme token address)
1639
+ * @param margin - Margin amount in wei (as string)
1640
+ * @param leverage - Leverage multiplier (1-100, default 10)
1641
+ * @returns Position ID and transaction hash
1642
+ */
1643
+ pikeperpsOpenLong(tokenAddress: Address$1, margin: string, leverage?: number): Promise<OpenPositionResult>;
1644
+ /**
1645
+ * Open a short position on PikePerps
1646
+ * @param tokenAddress - Token to trade (meme token address)
1647
+ * @param margin - Margin amount in wei (as string)
1648
+ * @param leverage - Leverage multiplier (1-100, default 10)
1649
+ * @returns Position ID and transaction hash
1650
+ */
1651
+ pikeperpsOpenShort(tokenAddress: Address$1, margin: string, leverage?: number): Promise<OpenPositionResult$1>;
1652
+ /**
1653
+ * Close an existing position on PikePerps
1654
+ * @param positionId - Position ID to close
1655
+ * @returns Transaction hash
1656
+ */
1657
+ pikeperpsClosePosition(positionId: bigint): Promise<`0x${string}`>;
1658
+ /**
1659
+ * Get all positions for a user on PikePerps
1660
+ * Returns detailed position data including PnL and liquidation prices
1661
+ * @param userAddress - User wallet address (optional, defaults to agent account)
1662
+ * @returns Array of positions with PnL and liquidation data
1663
+ */
1664
+ pikeperpsGetPositions(userAddress?: Address$1): Promise<PikePerpsPosition[]>;
1665
+ /**
1666
+ * Get market data for a token on PikePerps
1667
+ * Returns current price and recent trades
1668
+ * @param tokenAddress - Token address to get market data for
1669
+ * @param limit - Maximum number of recent trades to return (default 20)
1670
+ * @returns Market data with price and recent trades
1671
+ */
1672
+ pikeperpsGetMarketData(tokenAddress: Address$1, limit?: number): Promise<PikePerpsMarketData>;
1673
+ /**
1674
+ * Get real-time price from Pyth Network
1675
+ * @param priceFeedIdOrPair - Price feed ID or pair name (e.g., "ETH/USD", "BTC/USD", "MNT/USD")
1676
+ * @returns Price data with formatted price
1677
+ */
1678
+ pythGetPrice(priceFeedIdOrPair: string): Promise<PythPriceResponse>;
1679
+ /**
1680
+ * Get EMA (Exponential Moving Average) price from Pyth
1681
+ * @param priceFeedIdOrPair - Price feed ID or pair name
1682
+ * @returns EMA price data
1683
+ */
1684
+ pythGetEmaPrice(priceFeedIdOrPair: string): Promise<PythPriceResponse>;
1685
+ /**
1686
+ * Get multiple prices from Pyth in a single call
1687
+ * @param pairs - Array of pair names or price feed IDs
1688
+ * @returns Array of price responses
1689
+ */
1690
+ pythGetMultiplePrices(pairs: string[]): Promise<PythPriceResponse[]>;
1691
+ /**
1692
+ * Get all supported Pyth price feed IDs
1693
+ * @returns Object mapping pair names to price feed IDs
1694
+ */
1695
+ pythGetSupportedPriceFeeds(): Record<string, string>;
1696
+ /**
1697
+ * Check if a price feed exists on Pyth
1698
+ * @param priceFeedIdOrPair - Price feed ID or pair name
1699
+ * @returns Boolean indicating if feed exists
1700
+ */
1701
+ pythPriceFeedExists(priceFeedIdOrPair: string): Promise<boolean>;
1702
+ /**
1703
+ * Deploy a new token (ERC20 or RWA) - supply minted to your address
1704
+ * @param name - Token name
1705
+ * @param symbol - Token symbol
1706
+ * @param supply - Total supply (human readable, e.g., "1000000")
1707
+ * @param tokenType - "standard" or "rwa"
1708
+ * @param assetType - For RWA: asset category
1709
+ * @param assetId - For RWA: external asset ID
1710
+ */
1711
+ deployToken(name: string, symbol: string, supply: string, tokenType?: TokenType, assetType?: string, assetId?: string): Promise<TokenDeploymentResult>;
1712
+ /**
1713
+ * Deploy a standard ERC20 token
1714
+ * @param name - Token name
1715
+ * @param symbol - Token symbol
1716
+ * @param supply - Total supply (e.g., "1000000" for 1M tokens)
1717
+ */
1718
+ deployStandardToken(name: string, symbol: string, supply: string): Promise<TokenDeploymentResult>;
1719
+ /**
1720
+ * Deploy an RWA (Real World Asset) token
1721
+ * @param name - Token name (e.g., "Manhattan Property Token")
1722
+ * @param symbol - Token symbol (e.g., "MPT")
1723
+ * @param supply - Total supply for fractional ownership
1724
+ * @param assetType - Asset category: "Real Estate", "Commodities", "Securities", "Art"
1725
+ * @param assetId - External reference ID for the underlying asset
1726
+ */
1727
+ deployRWAToken(name: string, symbol: string, supply: string, assetType: string, assetId?: string): Promise<TokenDeploymentResult>;
1728
+ /**
1729
+ * Get token information
1730
+ */
1731
+ getTokenInfo(tokenAddress: Address$1, holder?: Address$1): Promise<TokenInfo>;
1732
+ /**
1733
+ * Get token balance
1734
+ */
1735
+ getTokenBalance(tokenAddress: Address$1, holder?: Address$1): Promise<string>;
1736
+ /**
1737
+ * Transfer tokens
1738
+ */
1739
+ transferToken(tokenAddress: Address$1, to: Address$1, amount: string): Promise<`0x${string}`>;
1740
+ /**
1741
+ * Deploy a new ERC721 NFT collection on Mantle Network
1742
+ * @param config - Collection configuration (name, symbol, baseURI, maxSupply)
1743
+ * @returns Collection deployment result with contract address
1744
+ */
1745
+ deployNFTCollection(config: NFTCollectionConfig): Promise<NFTCollectionDeploymentResult>;
1746
+ /**
1747
+ * Deploy an NFT collection with preset configurations
1748
+ * @param preset - Preset type: "pfp" (10000), "art" (1000), "membership" (100), "unlimited"
1749
+ * @param name - Collection name
1750
+ * @param symbol - Collection symbol
1751
+ * @param baseURI - Base URI for metadata
1752
+ * @returns Collection deployment result
1753
+ */
1754
+ deployNFTCollectionWithPreset(preset: "pfp" | "art" | "membership" | "unlimited", name: string, symbol: string, baseURI: string): Promise<NFTCollectionDeploymentResult>;
1755
+ /**
1756
+ * Mint a single NFT from a collection
1757
+ * @param collectionAddress - NFT collection contract address
1758
+ * @param to - Recipient address (defaults to agent address)
1759
+ * @returns Mint result with token ID
1760
+ */
1761
+ mintNFT(collectionAddress: Address$1, to?: Address$1): Promise<NFTMintResult>;
1762
+ /**
1763
+ * Batch mint multiple NFTs from a collection
1764
+ * @param collectionAddress - NFT collection contract address
1765
+ * @param to - Recipient address
1766
+ * @param quantity - Number of NFTs to mint
1767
+ * @returns Mint result with starting token ID
1768
+ */
1769
+ batchMintNFT(collectionAddress: Address$1, to: Address$1, quantity: number): Promise<{
1770
+ txHash: viem.Hex;
1771
+ startTokenId: string;
1772
+ quantity: number;
1773
+ }>;
1774
+ /**
1775
+ * Get information about an NFT collection
1776
+ * @param collectionAddress - NFT collection contract address
1777
+ * @param holderAddress - Optional address to get balance for
1778
+ * @returns Collection information
1779
+ */
1780
+ getNFTCollectionInfo(collectionAddress: Address$1, holderAddress?: Address$1): Promise<NFTCollectionInfo>;
1781
+ /**
1782
+ * Get information about a specific NFT token
1783
+ * @param collectionAddress - NFT collection contract address
1784
+ * @param tokenId - Token ID
1785
+ * @returns Token information
1786
+ */
1787
+ getNFTTokenInfo(collectionAddress: Address$1, tokenId: string): Promise<NFTTokenInfo>;
1788
+ /**
1789
+ * Get NFT balance for an address
1790
+ * @param collectionAddress - NFT collection contract address
1791
+ * @param holderAddress - Address to check (defaults to agent address)
1792
+ * @returns Balance as string
1793
+ */
1794
+ getNFTBalance(collectionAddress: Address$1, holderAddress?: Address$1): Promise<string>;
1795
+ /**
1796
+ * Check if an address owns a specific NFT
1797
+ * @param collectionAddress - NFT collection contract address
1798
+ * @param tokenId - Token ID to check
1799
+ * @param ownerAddress - Address to verify ownership
1800
+ * @returns Boolean indicating ownership
1801
+ */
1802
+ isNFTOwner(collectionAddress: Address$1, tokenId: string, ownerAddress?: Address$1): Promise<boolean>;
1803
+ /**
1804
+ * Transfer an NFT to another address
1805
+ * @param collectionAddress - NFT collection contract address
1806
+ * @param to - Recipient address
1807
+ * @param tokenId - Token ID to transfer
1808
+ * @returns Transaction hash
1809
+ */
1810
+ transferNFT(collectionAddress: Address$1, to: Address$1, tokenId: string): Promise<`0x${string}`>;
1811
+ /**
1812
+ * Safe transfer an NFT (checks if recipient can receive)
1813
+ * @param collectionAddress - NFT collection contract address
1814
+ * @param to - Recipient address
1815
+ * @param tokenId - Token ID to transfer
1816
+ * @returns Transaction hash
1817
+ */
1818
+ safeTransferNFT(collectionAddress: Address$1, to: Address$1, tokenId: string): Promise<`0x${string}`>;
1819
+ /**
1820
+ * Approve an address to transfer a specific NFT
1821
+ * @param collectionAddress - NFT collection contract address
1822
+ * @param approved - Address to approve
1823
+ * @param tokenId - Token ID to approve
1824
+ * @returns Transaction hash
1825
+ */
1826
+ approveNFT(collectionAddress: Address$1, approved: Address$1, tokenId: string): Promise<`0x${string}`>;
1827
+ /**
1828
+ * Set approval for all NFTs in a collection
1829
+ * @param collectionAddress - NFT collection contract address
1830
+ * @param operator - Operator address
1831
+ * @param approved - Whether to approve or revoke
1832
+ * @returns Transaction hash
1833
+ */
1834
+ setApprovalForAllNFT(collectionAddress: Address$1, operator: Address$1, approved: boolean): Promise<`0x${string}`>;
1835
+ }
1836
+
1837
+ declare const FACTORY: {
1838
+ readonly mainnet: "0x25780dc8Fc3cfBD75F33bFDAB65e969b603b2035";
1839
+ readonly testnet: "0x0000000000000000000000000000000000000000";
1840
+ };
1841
+ declare const SWAP_ROUTER: {
1842
+ readonly mainnet: "0x319B69888b0d11cEC22caA5034e25FfFBDc88421";
1843
+ readonly testnet: "0x0000000000000000000000000000000000000000";
1844
+ };
1845
+ declare const POSITION_MANAGER: {
1846
+ readonly mainnet: "0x218bf598d1453383e2f4aa7b14ffb9bfb102d637";
1847
+ readonly testnet: "0x0000000000000000000000000000000000000000";
1848
+ };
1849
+ declare const SWAP_ROUTER_ABI: readonly [{
1850
+ readonly inputs: readonly [{
1851
+ readonly components: readonly [{
1852
+ readonly name: "tokenIn";
1853
+ readonly type: "address";
1854
+ }, {
1855
+ readonly name: "tokenOut";
1856
+ readonly type: "address";
1857
+ }, {
1858
+ readonly name: "fee";
1859
+ readonly type: "uint24";
1860
+ }, {
1861
+ readonly name: "recipient";
1862
+ readonly type: "address";
1863
+ }, {
1864
+ readonly name: "deadline";
1865
+ readonly type: "uint256";
1866
+ }, {
1867
+ readonly name: "amountIn";
1868
+ readonly type: "uint256";
1869
+ }, {
1870
+ readonly name: "amountOutMinimum";
1871
+ readonly type: "uint256";
1872
+ }, {
1873
+ readonly name: "sqrtPriceLimitX96";
1874
+ readonly type: "uint160";
1875
+ }];
1876
+ readonly name: "params";
1877
+ readonly type: "tuple";
1878
+ }];
1879
+ readonly name: "exactInputSingle";
1880
+ readonly outputs: readonly [{
1881
+ readonly name: "amountOut";
1882
+ readonly type: "uint256";
1883
+ }];
1884
+ readonly stateMutability: "payable";
475
1885
  readonly type: "function";
476
1886
  }];
477
1887
  declare const FEE_TIERS: {
@@ -481,13 +1891,13 @@ declare const FEE_TIERS: {
481
1891
  readonly HIGH: 10000;
482
1892
  };
483
1893
 
484
- declare const index$6_FACTORY: typeof FACTORY;
485
- declare const index$6_FEE_TIERS: typeof FEE_TIERS;
486
- declare const index$6_POSITION_MANAGER: typeof POSITION_MANAGER;
487
- declare const index$6_SWAP_ROUTER: typeof SWAP_ROUTER;
488
- declare const index$6_SWAP_ROUTER_ABI: typeof SWAP_ROUTER_ABI;
489
- declare namespace index$6 {
490
- export { index$6_FACTORY as FACTORY, index$6_FEE_TIERS as FEE_TIERS, index$6_POSITION_MANAGER as POSITION_MANAGER, index$6_SWAP_ROUTER as SWAP_ROUTER, index$6_SWAP_ROUTER_ABI as SWAP_ROUTER_ABI };
1894
+ declare const index$7_FACTORY: typeof FACTORY;
1895
+ declare const index$7_FEE_TIERS: typeof FEE_TIERS;
1896
+ declare const index$7_POSITION_MANAGER: typeof POSITION_MANAGER;
1897
+ declare const index$7_SWAP_ROUTER: typeof SWAP_ROUTER;
1898
+ declare const index$7_SWAP_ROUTER_ABI: typeof SWAP_ROUTER_ABI;
1899
+ declare namespace index$7 {
1900
+ export { index$7_FACTORY as FACTORY, index$7_FEE_TIERS as FEE_TIERS, index$7_POSITION_MANAGER as POSITION_MANAGER, index$7_SWAP_ROUTER as SWAP_ROUTER, index$7_SWAP_ROUTER_ABI as SWAP_ROUTER_ABI };
491
1901
  }
492
1902
 
493
1903
  declare const LENDING_POOL: {
@@ -666,16 +2076,111 @@ declare const LENDING_POOL_ABI: readonly [{
666
2076
  readonly stateMutability: "view";
667
2077
  readonly type: "function";
668
2078
  }];
2079
+ declare const PROTOCOL_DATA_PROVIDER_ABI: readonly [{
2080
+ readonly inputs: readonly [];
2081
+ readonly name: "getAllReservesTokens";
2082
+ readonly outputs: readonly [{
2083
+ readonly components: readonly [{
2084
+ readonly name: "symbol";
2085
+ readonly type: "string";
2086
+ }, {
2087
+ readonly name: "tokenAddress";
2088
+ readonly type: "address";
2089
+ }];
2090
+ readonly name: "";
2091
+ readonly type: "tuple[]";
2092
+ }];
2093
+ readonly stateMutability: "view";
2094
+ readonly type: "function";
2095
+ }, {
2096
+ readonly inputs: readonly [{
2097
+ readonly name: "asset";
2098
+ readonly type: "address";
2099
+ }, {
2100
+ readonly name: "user";
2101
+ readonly type: "address";
2102
+ }];
2103
+ readonly name: "getUserReserveData";
2104
+ readonly outputs: readonly [{
2105
+ readonly name: "currentATokenBalance";
2106
+ readonly type: "uint256";
2107
+ }, {
2108
+ readonly name: "currentStableDebt";
2109
+ readonly type: "uint256";
2110
+ }, {
2111
+ readonly name: "currentVariableDebt";
2112
+ readonly type: "uint256";
2113
+ }, {
2114
+ readonly name: "principalStableDebt";
2115
+ readonly type: "uint256";
2116
+ }, {
2117
+ readonly name: "scaledVariableDebt";
2118
+ readonly type: "uint256";
2119
+ }, {
2120
+ readonly name: "stableBorrowRate";
2121
+ readonly type: "uint256";
2122
+ }, {
2123
+ readonly name: "liquidityRate";
2124
+ readonly type: "uint256";
2125
+ }, {
2126
+ readonly name: "stableRateLastUpdated";
2127
+ readonly type: "uint40";
2128
+ }, {
2129
+ readonly name: "usageAsCollateralEnabled";
2130
+ readonly type: "bool";
2131
+ }];
2132
+ readonly stateMutability: "view";
2133
+ readonly type: "function";
2134
+ }, {
2135
+ readonly inputs: readonly [{
2136
+ readonly name: "asset";
2137
+ readonly type: "address";
2138
+ }];
2139
+ readonly name: "getReserveTokensAddresses";
2140
+ readonly outputs: readonly [{
2141
+ readonly name: "aTokenAddress";
2142
+ readonly type: "address";
2143
+ }, {
2144
+ readonly name: "stableDebtTokenAddress";
2145
+ readonly type: "address";
2146
+ }, {
2147
+ readonly name: "variableDebtTokenAddress";
2148
+ readonly type: "address";
2149
+ }];
2150
+ readonly stateMutability: "view";
2151
+ readonly type: "function";
2152
+ }];
2153
+ declare const LENDLE_SUPPORTED_ASSETS: {
2154
+ readonly mainnet: readonly [{
2155
+ readonly symbol: "WMNT";
2156
+ readonly address: "0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8";
2157
+ }, {
2158
+ readonly symbol: "WETH";
2159
+ readonly address: "0xdEAddEaDdeadDEadDEADDEAddEADDEAddead1111";
2160
+ }, {
2161
+ readonly symbol: "USDC";
2162
+ readonly address: "0x09Bc4E0D10C81b3a3766c49F0f98a8aaa7adA8D2";
2163
+ }, {
2164
+ readonly symbol: "USDT";
2165
+ readonly address: "0x201EBa5CC46D216Ce6DC03F6a759e8E766e956aE";
2166
+ }, {
2167
+ readonly symbol: "mETH";
2168
+ readonly address: "0xcDA86A272531e8640cD7F1a92c01839911B90bb0";
2169
+ }];
2170
+ readonly testnet: readonly [];
2171
+ };
669
2172
 
670
- declare const index$5_INTEREST_RATE_MODE: typeof INTEREST_RATE_MODE;
671
- declare const index$5_LENDING_POOL: typeof LENDING_POOL;
672
- declare const index$5_LENDING_POOL_ABI: typeof LENDING_POOL_ABI;
673
- declare const index$5_LENDING_POOL_ADDRESSES_PROVIDER: typeof LENDING_POOL_ADDRESSES_PROVIDER;
674
- declare const index$5_ORACLE: typeof ORACLE;
675
- declare const index$5_PROTOCOL_DATA_PROVIDER: typeof PROTOCOL_DATA_PROVIDER;
676
- declare const index$5_WMNT_ADDRESS: typeof WMNT_ADDRESS;
677
- declare namespace index$5 {
678
- export { index$5_INTEREST_RATE_MODE as INTEREST_RATE_MODE, index$5_LENDING_POOL as LENDING_POOL, index$5_LENDING_POOL_ABI as LENDING_POOL_ABI, index$5_LENDING_POOL_ADDRESSES_PROVIDER as LENDING_POOL_ADDRESSES_PROVIDER, index$5_ORACLE as ORACLE, index$5_PROTOCOL_DATA_PROVIDER as PROTOCOL_DATA_PROVIDER, index$5_WMNT_ADDRESS as WMNT_ADDRESS };
2173
+ declare const index$6_INTEREST_RATE_MODE: typeof INTEREST_RATE_MODE;
2174
+ declare const index$6_LENDING_POOL: typeof LENDING_POOL;
2175
+ declare const index$6_LENDING_POOL_ABI: typeof LENDING_POOL_ABI;
2176
+ declare const index$6_LENDING_POOL_ADDRESSES_PROVIDER: typeof LENDING_POOL_ADDRESSES_PROVIDER;
2177
+ declare const index$6_LENDLE_SUPPORTED_ASSETS: typeof LENDLE_SUPPORTED_ASSETS;
2178
+ declare const index$6_ORACLE: typeof ORACLE;
2179
+ declare const index$6_PROTOCOL_DATA_PROVIDER: typeof PROTOCOL_DATA_PROVIDER;
2180
+ declare const index$6_PROTOCOL_DATA_PROVIDER_ABI: typeof PROTOCOL_DATA_PROVIDER_ABI;
2181
+ declare const index$6_WMNT_ADDRESS: typeof WMNT_ADDRESS;
2182
+ declare namespace index$6 {
2183
+ export { index$6_INTEREST_RATE_MODE as INTEREST_RATE_MODE, index$6_LENDING_POOL as LENDING_POOL, index$6_LENDING_POOL_ABI as LENDING_POOL_ABI, index$6_LENDING_POOL_ADDRESSES_PROVIDER as LENDING_POOL_ADDRESSES_PROVIDER, index$6_LENDLE_SUPPORTED_ASSETS as LENDLE_SUPPORTED_ASSETS, index$6_ORACLE as ORACLE, index$6_PROTOCOL_DATA_PROVIDER as PROTOCOL_DATA_PROVIDER, index$6_PROTOCOL_DATA_PROVIDER_ABI as PROTOCOL_DATA_PROVIDER_ABI, index$6_WMNT_ADDRESS as WMNT_ADDRESS };
679
2184
  }
680
2185
 
681
2186
  declare const LB_ROUTER: {
@@ -717,13 +2222,13 @@ declare const LB_ROUTER_ABI: readonly [{
717
2222
  readonly type: "function";
718
2223
  }];
719
2224
 
720
- declare const index$4_LB_FACTORY: typeof LB_FACTORY;
721
- declare const index$4_LB_QUOTER: typeof LB_QUOTER;
722
- declare const index$4_LB_ROUTER: typeof LB_ROUTER;
723
- declare const index$4_LB_ROUTER_ABI: typeof LB_ROUTER_ABI;
724
- declare const index$4_MOE_TOKEN: typeof MOE_TOKEN;
725
- declare namespace index$4 {
726
- export { index$4_LB_FACTORY as LB_FACTORY, index$4_LB_QUOTER as LB_QUOTER, index$4_LB_ROUTER as LB_ROUTER, index$4_LB_ROUTER_ABI as LB_ROUTER_ABI, index$4_MOE_TOKEN as MOE_TOKEN };
2225
+ declare const index$5_LB_FACTORY: typeof LB_FACTORY;
2226
+ declare const index$5_LB_QUOTER: typeof LB_QUOTER;
2227
+ declare const index$5_LB_ROUTER: typeof LB_ROUTER;
2228
+ declare const index$5_LB_ROUTER_ABI: typeof LB_ROUTER_ABI;
2229
+ declare const index$5_MOE_TOKEN: typeof MOE_TOKEN;
2230
+ declare namespace index$5 {
2231
+ export { index$5_LB_FACTORY as LB_FACTORY, index$5_LB_QUOTER as LB_QUOTER, index$5_LB_ROUTER as LB_ROUTER, index$5_LB_ROUTER_ABI as LB_ROUTER_ABI, index$5_MOE_TOKEN as MOE_TOKEN };
727
2232
  }
728
2233
 
729
2234
  declare const configs$1: {
@@ -735,10 +2240,10 @@ declare const configs$1: {
735
2240
  declare const baseUrl: string;
736
2241
  declare const ETH_ADDRESS = "0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000";
737
2242
 
738
- declare const index$3_ETH_ADDRESS: typeof ETH_ADDRESS;
739
- declare const index$3_baseUrl: typeof baseUrl;
740
- declare namespace index$3 {
741
- export { index$3_ETH_ADDRESS as ETH_ADDRESS, index$3_baseUrl as baseUrl, configs$1 as configs };
2243
+ declare const index$4_ETH_ADDRESS: typeof ETH_ADDRESS;
2244
+ declare const index$4_baseUrl: typeof baseUrl;
2245
+ declare namespace index$4 {
2246
+ export { index$4_ETH_ADDRESS as ETH_ADDRESS, index$4_baseUrl as baseUrl, configs$1 as configs };
742
2247
  }
743
2248
 
744
2249
  declare const ONEINCH_BASE_URL = "https://api.1inch.dev/swap/v6.0";
@@ -752,12 +2257,12 @@ declare const configs: {
752
2257
  apiKey: string | undefined;
753
2258
  };
754
2259
 
755
- declare const index$2_ONEINCH_BASE_URL: typeof ONEINCH_BASE_URL;
756
- declare const index$2_ONEINCH_CHAIN_ID: typeof ONEINCH_CHAIN_ID;
757
- declare const index$2_ONEINCH_ROUTER_ADDRESS: typeof ONEINCH_ROUTER_ADDRESS;
758
- declare const index$2_configs: typeof configs;
759
- declare namespace index$2 {
760
- export { NATIVE_TOKEN_ADDRESS$2 as NATIVE_TOKEN_ADDRESS, index$2_ONEINCH_BASE_URL as ONEINCH_BASE_URL, index$2_ONEINCH_CHAIN_ID as ONEINCH_CHAIN_ID, index$2_ONEINCH_ROUTER_ADDRESS as ONEINCH_ROUTER_ADDRESS, index$2_configs as configs };
2260
+ declare const index$3_ONEINCH_BASE_URL: typeof ONEINCH_BASE_URL;
2261
+ declare const index$3_ONEINCH_CHAIN_ID: typeof ONEINCH_CHAIN_ID;
2262
+ declare const index$3_ONEINCH_ROUTER_ADDRESS: typeof ONEINCH_ROUTER_ADDRESS;
2263
+ declare const index$3_configs: typeof configs;
2264
+ declare namespace index$3 {
2265
+ export { NATIVE_TOKEN_ADDRESS$2 as NATIVE_TOKEN_ADDRESS, index$3_ONEINCH_BASE_URL as ONEINCH_BASE_URL, index$3_ONEINCH_CHAIN_ID as ONEINCH_CHAIN_ID, index$3_ONEINCH_ROUTER_ADDRESS as ONEINCH_ROUTER_ADDRESS, index$3_configs as configs };
761
2266
  }
762
2267
 
763
2268
  declare const OPENOCEAN_BASE_URL = "https://open-api.openocean.finance/v4";
@@ -768,11 +2273,11 @@ declare const OPENOCEAN_CHAIN: {
768
2273
  declare const NATIVE_TOKEN_ADDRESS$1 = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
769
2274
  declare const OPENOCEAN_EXCHANGE_PROXY = "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64";
770
2275
 
771
- declare const index$1_OPENOCEAN_BASE_URL: typeof OPENOCEAN_BASE_URL;
772
- declare const index$1_OPENOCEAN_CHAIN: typeof OPENOCEAN_CHAIN;
773
- declare const index$1_OPENOCEAN_EXCHANGE_PROXY: typeof OPENOCEAN_EXCHANGE_PROXY;
774
- declare namespace index$1 {
775
- export { NATIVE_TOKEN_ADDRESS$1 as NATIVE_TOKEN_ADDRESS, index$1_OPENOCEAN_BASE_URL as OPENOCEAN_BASE_URL, index$1_OPENOCEAN_CHAIN as OPENOCEAN_CHAIN, index$1_OPENOCEAN_EXCHANGE_PROXY as OPENOCEAN_EXCHANGE_PROXY };
2276
+ declare const index$2_OPENOCEAN_BASE_URL: typeof OPENOCEAN_BASE_URL;
2277
+ declare const index$2_OPENOCEAN_CHAIN: typeof OPENOCEAN_CHAIN;
2278
+ declare const index$2_OPENOCEAN_EXCHANGE_PROXY: typeof OPENOCEAN_EXCHANGE_PROXY;
2279
+ declare namespace index$2 {
2280
+ export { NATIVE_TOKEN_ADDRESS$1 as NATIVE_TOKEN_ADDRESS, index$2_OPENOCEAN_BASE_URL as OPENOCEAN_BASE_URL, index$2_OPENOCEAN_CHAIN as OPENOCEAN_CHAIN, index$2_OPENOCEAN_EXCHANGE_PROXY as OPENOCEAN_EXCHANGE_PROXY };
776
2281
  }
777
2282
 
778
2283
  declare const SQUID_BASE_URL = "https://api.squidrouter.com/v2";
@@ -792,12 +2297,399 @@ declare const DESTINATION_CHAINS: {
792
2297
  };
793
2298
  declare const NATIVE_TOKEN_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
794
2299
 
795
- declare const index_DESTINATION_CHAINS: typeof DESTINATION_CHAINS;
796
- declare const index_NATIVE_TOKEN_ADDRESS: typeof NATIVE_TOKEN_ADDRESS;
797
- declare const index_SQUID_BASE_URL: typeof SQUID_BASE_URL;
798
- declare const index_SQUID_CHAIN_ID: typeof SQUID_CHAIN_ID;
2300
+ declare const index$1_DESTINATION_CHAINS: typeof DESTINATION_CHAINS;
2301
+ declare const index$1_NATIVE_TOKEN_ADDRESS: typeof NATIVE_TOKEN_ADDRESS;
2302
+ declare const index$1_SQUID_BASE_URL: typeof SQUID_BASE_URL;
2303
+ declare const index$1_SQUID_CHAIN_ID: typeof SQUID_CHAIN_ID;
2304
+ declare namespace index$1 {
2305
+ export { index$1_DESTINATION_CHAINS as DESTINATION_CHAINS, index$1_NATIVE_TOKEN_ADDRESS as NATIVE_TOKEN_ADDRESS, index$1_SQUID_BASE_URL as SQUID_BASE_URL, index$1_SQUID_CHAIN_ID as SQUID_CHAIN_ID };
2306
+ }
2307
+
2308
+ declare const PERPETUAL_TRADING: {
2309
+ readonly mainnet: "0x0000000000000000000000000000000000000000";
2310
+ readonly testnet: "0x8081b646f349c049f2d5e8a400057d411dd657bd";
2311
+ };
2312
+ declare const BONDING_CURVE_MARKET: {
2313
+ readonly mainnet: "0x0000000000000000000000000000000000000000";
2314
+ readonly testnet: "0x93b268325A9862645c82b32229f3B52264750Ca2";
2315
+ };
2316
+ declare const PIKE_PERPS_CONFIG: {
2317
+ readonly MAX_LEVERAGE: 100;
2318
+ readonly DEFAULT_LEVERAGE: 10;
2319
+ readonly MIN_LEVERAGE: 1;
2320
+ readonly TRADING_FEE_BPS: 5;
2321
+ readonly LIQUIDATION_REWARD_BPS: 500;
2322
+ readonly PRICE_DECIMALS: 8;
2323
+ };
2324
+ declare const PERPETUAL_TRADING_ABI: readonly [{
2325
+ readonly inputs: readonly [{
2326
+ readonly internalType: "address";
2327
+ readonly name: "_pyth";
2328
+ readonly type: "address";
2329
+ }];
2330
+ readonly stateMutability: "nonpayable";
2331
+ readonly type: "constructor";
2332
+ }, {
2333
+ readonly anonymous: false;
2334
+ readonly inputs: readonly [{
2335
+ readonly indexed: true;
2336
+ readonly internalType: "uint256";
2337
+ readonly name: "positionId";
2338
+ readonly type: "uint256";
2339
+ }, {
2340
+ readonly indexed: true;
2341
+ readonly internalType: "address";
2342
+ readonly name: "user";
2343
+ readonly type: "address";
2344
+ }, {
2345
+ readonly indexed: false;
2346
+ readonly internalType: "uint256";
2347
+ readonly name: "pnl";
2348
+ readonly type: "uint256";
2349
+ }, {
2350
+ readonly indexed: false;
2351
+ readonly internalType: "uint256";
2352
+ readonly name: "exitPrice";
2353
+ readonly type: "uint256";
2354
+ }];
2355
+ readonly name: "PositionClosed";
2356
+ readonly type: "event";
2357
+ }, {
2358
+ readonly anonymous: false;
2359
+ readonly inputs: readonly [{
2360
+ readonly indexed: true;
2361
+ readonly internalType: "uint256";
2362
+ readonly name: "positionId";
2363
+ readonly type: "uint256";
2364
+ }, {
2365
+ readonly indexed: true;
2366
+ readonly internalType: "address";
2367
+ readonly name: "user";
2368
+ readonly type: "address";
2369
+ }, {
2370
+ readonly indexed: false;
2371
+ readonly internalType: "uint256";
2372
+ readonly name: "liquidationPrice";
2373
+ readonly type: "uint256";
2374
+ }];
2375
+ readonly name: "PositionLiquidated";
2376
+ readonly type: "event";
2377
+ }, {
2378
+ readonly anonymous: false;
2379
+ readonly inputs: readonly [{
2380
+ readonly indexed: true;
2381
+ readonly internalType: "uint256";
2382
+ readonly name: "positionId";
2383
+ readonly type: "uint256";
2384
+ }, {
2385
+ readonly indexed: true;
2386
+ readonly internalType: "address";
2387
+ readonly name: "user";
2388
+ readonly type: "address";
2389
+ }, {
2390
+ readonly indexed: true;
2391
+ readonly internalType: "address";
2392
+ readonly name: "token";
2393
+ readonly type: "address";
2394
+ }, {
2395
+ readonly indexed: false;
2396
+ readonly internalType: "bool";
2397
+ readonly name: "isLong";
2398
+ readonly type: "bool";
2399
+ }, {
2400
+ readonly indexed: false;
2401
+ readonly internalType: "uint256";
2402
+ readonly name: "size";
2403
+ readonly type: "uint256";
2404
+ }, {
2405
+ readonly indexed: false;
2406
+ readonly internalType: "uint256";
2407
+ readonly name: "margin";
2408
+ readonly type: "uint256";
2409
+ }, {
2410
+ readonly indexed: false;
2411
+ readonly internalType: "uint256";
2412
+ readonly name: "leverage";
2413
+ readonly type: "uint256";
2414
+ }, {
2415
+ readonly indexed: false;
2416
+ readonly internalType: "uint256";
2417
+ readonly name: "entryPrice";
2418
+ readonly type: "uint256";
2419
+ }];
2420
+ readonly name: "PositionOpened";
2421
+ readonly type: "event";
2422
+ }, {
2423
+ readonly inputs: readonly [{
2424
+ readonly internalType: "uint256";
2425
+ readonly name: "_positionId";
2426
+ readonly type: "uint256";
2427
+ }];
2428
+ readonly name: "closePosition";
2429
+ readonly outputs: readonly [];
2430
+ readonly stateMutability: "nonpayable";
2431
+ readonly type: "function";
2432
+ }, {
2433
+ readonly inputs: readonly [{
2434
+ readonly internalType: "address";
2435
+ readonly name: "_token";
2436
+ readonly type: "address";
2437
+ }];
2438
+ readonly name: "getCurrentPrice";
2439
+ readonly outputs: readonly [{
2440
+ readonly internalType: "uint256";
2441
+ readonly name: "currentPrice";
2442
+ readonly type: "uint256";
2443
+ }, {
2444
+ readonly internalType: "bool";
2445
+ readonly name: "hasPrice";
2446
+ readonly type: "bool";
2447
+ }];
2448
+ readonly stateMutability: "view";
2449
+ readonly type: "function";
2450
+ }, {
2451
+ readonly inputs: readonly [{
2452
+ readonly internalType: "uint256";
2453
+ readonly name: "_positionId";
2454
+ readonly type: "uint256";
2455
+ }];
2456
+ readonly name: "getLiquidationPrice";
2457
+ readonly outputs: readonly [{
2458
+ readonly internalType: "uint256";
2459
+ readonly name: "liquidationPrice";
2460
+ readonly type: "uint256";
2461
+ }];
2462
+ readonly stateMutability: "view";
2463
+ readonly type: "function";
2464
+ }, {
2465
+ readonly inputs: readonly [{
2466
+ readonly internalType: "uint256";
2467
+ readonly name: "_positionId";
2468
+ readonly type: "uint256";
2469
+ }];
2470
+ readonly name: "getPosition";
2471
+ readonly outputs: readonly [{
2472
+ readonly components: readonly [{
2473
+ readonly internalType: "address";
2474
+ readonly name: "user";
2475
+ readonly type: "address";
2476
+ }, {
2477
+ readonly internalType: "address";
2478
+ readonly name: "token";
2479
+ readonly type: "address";
2480
+ }, {
2481
+ readonly internalType: "bool";
2482
+ readonly name: "isLong";
2483
+ readonly type: "bool";
2484
+ }, {
2485
+ readonly internalType: "uint256";
2486
+ readonly name: "size";
2487
+ readonly type: "uint256";
2488
+ }, {
2489
+ readonly internalType: "uint256";
2490
+ readonly name: "margin";
2491
+ readonly type: "uint256";
2492
+ }, {
2493
+ readonly internalType: "uint256";
2494
+ readonly name: "leverage";
2495
+ readonly type: "uint256";
2496
+ }, {
2497
+ readonly internalType: "uint256";
2498
+ readonly name: "entryPrice";
2499
+ readonly type: "uint256";
2500
+ }, {
2501
+ readonly internalType: "uint256";
2502
+ readonly name: "entryTime";
2503
+ readonly type: "uint256";
2504
+ }, {
2505
+ readonly internalType: "uint256";
2506
+ readonly name: "lastFundingTime";
2507
+ readonly type: "uint256";
2508
+ }, {
2509
+ readonly internalType: "bool";
2510
+ readonly name: "isOpen";
2511
+ readonly type: "bool";
2512
+ }];
2513
+ readonly internalType: "struct PerpetualTrading.Position";
2514
+ readonly name: "";
2515
+ readonly type: "tuple";
2516
+ }];
2517
+ readonly stateMutability: "view";
2518
+ readonly type: "function";
2519
+ }, {
2520
+ readonly inputs: readonly [{
2521
+ readonly internalType: "uint256";
2522
+ readonly name: "_positionId";
2523
+ readonly type: "uint256";
2524
+ }];
2525
+ readonly name: "getPositionPnL";
2526
+ readonly outputs: readonly [{
2527
+ readonly internalType: "uint256";
2528
+ readonly name: "pnl";
2529
+ readonly type: "uint256";
2530
+ }, {
2531
+ readonly internalType: "bool";
2532
+ readonly name: "isProfit";
2533
+ readonly type: "bool";
2534
+ }];
2535
+ readonly stateMutability: "view";
2536
+ readonly type: "function";
2537
+ }, {
2538
+ readonly inputs: readonly [{
2539
+ readonly internalType: "address";
2540
+ readonly name: "_user";
2541
+ readonly type: "address";
2542
+ }];
2543
+ readonly name: "getUserPositions";
2544
+ readonly outputs: readonly [{
2545
+ readonly internalType: "uint256[]";
2546
+ readonly name: "";
2547
+ readonly type: "uint256[]";
2548
+ }];
2549
+ readonly stateMutability: "view";
2550
+ readonly type: "function";
2551
+ }, {
2552
+ readonly inputs: readonly [{
2553
+ readonly internalType: "uint256";
2554
+ readonly name: "_positionId";
2555
+ readonly type: "uint256";
2556
+ }];
2557
+ readonly name: "liquidatePosition";
2558
+ readonly outputs: readonly [];
2559
+ readonly stateMutability: "nonpayable";
2560
+ readonly type: "function";
2561
+ }, {
2562
+ readonly inputs: readonly [];
2563
+ readonly name: "maxLeverage";
2564
+ readonly outputs: readonly [{
2565
+ readonly internalType: "uint256";
2566
+ readonly name: "";
2567
+ readonly type: "uint256";
2568
+ }];
2569
+ readonly stateMutability: "view";
2570
+ readonly type: "function";
2571
+ }, {
2572
+ readonly inputs: readonly [];
2573
+ readonly name: "minMarginBps";
2574
+ readonly outputs: readonly [{
2575
+ readonly internalType: "uint256";
2576
+ readonly name: "";
2577
+ readonly type: "uint256";
2578
+ }];
2579
+ readonly stateMutability: "view";
2580
+ readonly type: "function";
2581
+ }, {
2582
+ readonly inputs: readonly [];
2583
+ readonly name: "nextPositionId";
2584
+ readonly outputs: readonly [{
2585
+ readonly internalType: "uint256";
2586
+ readonly name: "";
2587
+ readonly type: "uint256";
2588
+ }];
2589
+ readonly stateMutability: "view";
2590
+ readonly type: "function";
2591
+ }, {
2592
+ readonly inputs: readonly [{
2593
+ readonly internalType: "address";
2594
+ readonly name: "_token";
2595
+ readonly type: "address";
2596
+ }, {
2597
+ readonly internalType: "bool";
2598
+ readonly name: "_isLong";
2599
+ readonly type: "bool";
2600
+ }, {
2601
+ readonly internalType: "uint256";
2602
+ readonly name: "_margin";
2603
+ readonly type: "uint256";
2604
+ }, {
2605
+ readonly internalType: "uint256";
2606
+ readonly name: "_leverage";
2607
+ readonly type: "uint256";
2608
+ }];
2609
+ readonly name: "openPosition";
2610
+ readonly outputs: readonly [{
2611
+ readonly internalType: "uint256";
2612
+ readonly name: "positionId";
2613
+ readonly type: "uint256";
2614
+ }];
2615
+ readonly stateMutability: "payable";
2616
+ readonly type: "function";
2617
+ }, {
2618
+ readonly inputs: readonly [{
2619
+ readonly internalType: "uint256";
2620
+ readonly name: "_positionId";
2621
+ readonly type: "uint256";
2622
+ }];
2623
+ readonly name: "shouldLiquidate";
2624
+ readonly outputs: readonly [{
2625
+ readonly internalType: "bool";
2626
+ readonly name: "";
2627
+ readonly type: "bool";
2628
+ }];
2629
+ readonly stateMutability: "view";
2630
+ readonly type: "function";
2631
+ }, {
2632
+ readonly inputs: readonly [];
2633
+ readonly name: "tradingFeeBps";
2634
+ readonly outputs: readonly [{
2635
+ readonly internalType: "uint256";
2636
+ readonly name: "";
2637
+ readonly type: "uint256";
2638
+ }];
2639
+ readonly stateMutability: "view";
2640
+ readonly type: "function";
2641
+ }];
2642
+ declare const BONDING_CURVE_MARKET_ABI: readonly [{
2643
+ readonly inputs: readonly [{
2644
+ readonly internalType: "address";
2645
+ readonly name: "_token";
2646
+ readonly type: "address";
2647
+ }];
2648
+ readonly name: "getCurrentPrice";
2649
+ readonly outputs: readonly [{
2650
+ readonly internalType: "uint256";
2651
+ readonly name: "";
2652
+ readonly type: "uint256";
2653
+ }];
2654
+ readonly stateMutability: "view";
2655
+ readonly type: "function";
2656
+ }, {
2657
+ readonly inputs: readonly [{
2658
+ readonly internalType: "address";
2659
+ readonly name: "_token";
2660
+ readonly type: "address";
2661
+ }];
2662
+ readonly name: "isListed";
2663
+ readonly outputs: readonly [{
2664
+ readonly internalType: "bool";
2665
+ readonly name: "";
2666
+ readonly type: "bool";
2667
+ }];
2668
+ readonly stateMutability: "view";
2669
+ readonly type: "function";
2670
+ }, {
2671
+ readonly inputs: readonly [{
2672
+ readonly internalType: "address";
2673
+ readonly name: "_token";
2674
+ readonly type: "address";
2675
+ }];
2676
+ readonly name: "getCurveProgress";
2677
+ readonly outputs: readonly [{
2678
+ readonly internalType: "uint256";
2679
+ readonly name: "";
2680
+ readonly type: "uint256";
2681
+ }];
2682
+ readonly stateMutability: "view";
2683
+ readonly type: "function";
2684
+ }];
2685
+
2686
+ declare const index_BONDING_CURVE_MARKET: typeof BONDING_CURVE_MARKET;
2687
+ declare const index_BONDING_CURVE_MARKET_ABI: typeof BONDING_CURVE_MARKET_ABI;
2688
+ declare const index_PERPETUAL_TRADING: typeof PERPETUAL_TRADING;
2689
+ declare const index_PERPETUAL_TRADING_ABI: typeof PERPETUAL_TRADING_ABI;
2690
+ declare const index_PIKE_PERPS_CONFIG: typeof PIKE_PERPS_CONFIG;
799
2691
  declare namespace index {
800
- export { index_DESTINATION_CHAINS as DESTINATION_CHAINS, index_NATIVE_TOKEN_ADDRESS as NATIVE_TOKEN_ADDRESS, index_SQUID_BASE_URL as SQUID_BASE_URL, index_SQUID_CHAIN_ID as SQUID_CHAIN_ID };
2692
+ export { index_BONDING_CURVE_MARKET as BONDING_CURVE_MARKET, index_BONDING_CURVE_MARKET_ABI as BONDING_CURVE_MARKET_ABI, index_PERPETUAL_TRADING as PERPETUAL_TRADING, index_PERPETUAL_TRADING_ABI as PERPETUAL_TRADING_ABI, index_PIKE_PERPS_CONFIG as PIKE_PERPS_CONFIG };
801
2693
  }
802
2694
 
803
2695
  interface UserAccountData {
@@ -809,4 +2701,4 @@ interface UserAccountData {
809
2701
  healthFactor: bigint;
810
2702
  }
811
2703
 
812
- export { index$6 as AgniConstants, index$5 as LendleConstants, METH_TOKEN, MNTAgentKit, index$4 as MerchantMoeConstants, index$7 as MethConstants, index$3 as OKXConstants, index$2 as OneInchConstants, index$1 as OpenOceanConstants, type ProjectConfig, index as SquidConstants, index$8 as UniswapConstants, type UserAccountData, agniSwap, approveToken, crossChainSwapViaSquid, executeSwap, get1inchQuote, getOpenOceanQuote, getProjectConfig, getSquidRoute, getUniswapQuote, initializePlatform, lendleBorrow, lendleRepay, lendleSupply, lendleWithdraw, merchantMoeSwap, sendTransaction, swapOn1inch, swapOnOpenOcean, swapOnUniswap };
2704
+ export { index$7 as AgniConstants, index$6 as LendleConstants, type LendlePosition, type LendlePositionsResult, METH_TOKEN, MNTAgentKit, index$5 as MerchantMoeConstants, index$b as MethConstants, type MethPosition, type NFTCollectionConfig, type NFTCollectionDeploymentResult, type NFTCollectionInfo, index$8 as NFTLaunchpadConstants, type NFTMintResult, type NFTTokenInfo, index$4 as OKXConstants, index$3 as OneInchConstants, index$2 as OpenOceanConstants, index as PikePerpsConstants, type PikePerpsMarketData, type PikePerpsPosition, type PikePerpsTrade, type ProjectConfig, index$a as PythConstants, type PythPriceData, type PythPriceResponse, index$1 as SquidConstants, type TokenConfig, type TokenDeploymentResult, type TokenInfo, index$9 as TokenLaunchpadConstants, type TokenType, index$c as UniswapConstants, type UserAccountData, agniSwap, approveNFT, approveToken, batchMintNFT, crossChainSwapViaSquid, deployNFTCollection, deployNFTCollectionWithPreset, deployRWAToken, deployStandardToken, deployToken, executeSwap, get1inchQuote, getNFTBalance, getNFTCollectionInfo, getNFTTokenInfo, getOpenOceanQuote, getProjectConfig, getSquidRoute, getTokenBalance, getTokenInfo, getUniswapQuote, initializePlatform, isNFTOwner, lendleBorrow, lendleGetPositions, lendleRepay, lendleSupply, lendleWithdraw, merchantMoeSwap, methGetPosition, mintNFT, pikeperpsClosePosition, pikeperpsGetMarketData, pikeperpsGetPositions, pikeperpsOpenLong, pikeperpsOpenShort, pythGetEmaPrice, pythGetMultiplePrices, pythGetPrice, pythGetSupportedPriceFeeds, pythPriceFeedExists, safeTransferNFT, sendTransaction, setApprovalForAllNFT, swapFromMeth, swapOn1inch, swapOnOpenOcean, swapOnUniswap, swapToMeth, transferNFT, transferToken };