@txnlab/haystack-router 2.0.4 → 3.0.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.mts CHANGED
@@ -1,51 +1,50 @@
1
1
  import { ABIArgument, ABIMethod, ABIResult, Address, Algodv2, BoxReference, OnApplicationComplete, ResourceReference, SuggestedParams, Transaction, TransactionSigner, TransactionWithSigner } from "algosdk";
2
-
3
2
  //#region src/constants.d.ts
4
3
  /**
5
4
  * Supported DEX protocols for swap routing
6
5
  */
7
- declare enum Protocol {
6
+ export declare enum Protocol {
8
7
  TinymanV2 = "TinymanV2",
9
8
  Algofi = "Algofi",
10
9
  Algomint = "Algomint",
11
10
  Pact = "Pact",
12
11
  Folks = "Folks",
13
- TAlgo = "TAlgo",
12
+ TAlgo = "TAlgo"
14
13
  }
15
14
  /**
16
15
  * Deprecated protocols that are automatically excluded from routing
17
16
  *
18
17
  * @internal
19
18
  */
20
- declare const DEPRECATED_PROTOCOLS: readonly ["Humble", "Tinyman"];
19
+ export declare const DEPRECATED_PROTOCOLS: readonly ["Humble", "Tinyman"];
21
20
  /** Default Algod node URI for mainnet */
22
- declare const DEFAULT_ALGOD_URI = "https://mainnet-api.4160.nodely.dev/";
21
+ export declare const DEFAULT_ALGOD_URI = "https://mainnet-api.4160.nodely.dev/";
23
22
  /** Default Algod node token (empty for public nodes) */
24
- declare const DEFAULT_ALGOD_TOKEN = "";
23
+ export declare const DEFAULT_ALGOD_TOKEN = "";
25
24
  /** Default Algod node port */
26
- declare const DEFAULT_ALGOD_PORT = 443;
25
+ export declare const DEFAULT_ALGOD_PORT = 443;
27
26
  /** Default Haystack Router API base URL */
28
- declare const DEFAULT_API_BASE_URL = "https://hayrouter.txnlab.dev/api";
27
+ export declare const DEFAULT_API_BASE_URL = "https://hayrouter.txnlab.dev/api";
29
28
  /** Default fee in basis points (0.10%) */
30
- declare const DEFAULT_FEE_BPS = 10;
29
+ export declare const DEFAULT_FEE_BPS = 10;
31
30
  /** Maximum allowed fee in basis points (3.00%) */
32
- declare const MAX_FEE_BPS = 300;
31
+ export declare const MAX_FEE_BPS = 300;
33
32
  /** Default maximum transaction group size */
34
- declare const DEFAULT_MAX_GROUP_SIZE = 16;
33
+ export declare const DEFAULT_MAX_GROUP_SIZE = 16;
35
34
  /** Default maximum routing depth (number of hops) */
36
- declare const DEFAULT_MAX_DEPTH = 4;
35
+ export declare const DEFAULT_MAX_DEPTH = 4;
37
36
  /** Default auto opt-in setting (automatic asset/app opt-in detection) */
38
- declare const DEFAULT_AUTO_OPT_IN = false;
37
+ export declare const DEFAULT_AUTO_OPT_IN = false;
39
38
  /** Default debug level (no debug logging) */
40
- declare const DEFAULT_DEBUG_LEVEL: "none";
39
+ export declare const DEFAULT_DEBUG_LEVEL: "none";
41
40
  /** Default number of rounds to wait for transaction confirmation */
42
- declare const DEFAULT_CONFIRMATION_ROUNDS = 10;
41
+ export declare const DEFAULT_CONFIRMATION_ROUNDS = 10;
43
42
  //#endregion
44
43
  //#region src/types.d.ts
45
44
  /**
46
45
  * Configuration parameters for initializing RouterClient
47
46
  */
48
- interface ConfigParams {
47
+ export interface ConfigParams {
49
48
  /** API key for Haystack Router API (required) */
50
49
  readonly apiKey: string;
51
50
  /** Base URL for the Haystack Router API (default: https://hayrouter.txnlab.dev) */
@@ -77,18 +76,18 @@ interface ConfigParams {
77
76
  *
78
77
  * @internal
79
78
  */
80
- type Config = Omit<Required<ConfigParams>, 'referrerAddress' | 'debugLevel'> & {
79
+ export type Config = Omit<Required<ConfigParams>, 'referrerAddress' | 'debugLevel'> & {
81
80
  readonly referrerAddress: string | undefined;
82
81
  readonly debugLevel: 'none' | 'info' | 'debug' | 'trace';
83
82
  };
84
83
  /**
85
84
  * Swap quote type determining which amount is fixed
86
85
  */
87
- type QuoteType = 'fixed-input' | 'fixed-output';
86
+ export type QuoteType = 'fixed-input' | 'fixed-output';
88
87
  /**
89
88
  * Parameters for requesting a swap quote from the Haystack Router API (raw API method)
90
89
  */
91
- interface FetchQuoteParams {
90
+ export interface FetchQuoteParams {
92
91
  /** Input asset ID */
93
92
  readonly fromASAID: bigint | number;
94
93
  /** Output asset ID */
@@ -107,6 +106,15 @@ interface FetchQuoteParams {
107
106
  readonly optIn?: boolean;
108
107
  /** Address of the account that will perform the swap (required if autoOptIn is enabled) */
109
108
  readonly address?: string | null;
109
+ /**
110
+ * Slippage tolerance as a percentage (e.g., 1 for 1%), in [0, 100)
111
+ *
112
+ * Pass the same value you will pass to `newSwap()`. Quotes for pre-bonding
113
+ * HayLaunch tokens use it to price the bonding curve on the amount the route
114
+ * actually pays it; without it, those quotes overstate the output by about
115
+ * the slippage. Other quotes ignore it.
116
+ */
117
+ readonly slippage?: number;
110
118
  /**
111
119
  * ⚠️ **ADVANCED USE ONLY - NON-COMPOSABLE SWAPS** ⚠️
112
120
  *
@@ -138,7 +146,7 @@ interface FetchQuoteParams {
138
146
  /**
139
147
  * Asset information from the Haystack Router API
140
148
  */
141
- interface Asset {
149
+ export interface Asset {
142
150
  /** Asset ID */
143
151
  readonly id: number;
144
152
  /** Number of decimal places */
@@ -155,7 +163,7 @@ interface Asset {
155
163
  /**
156
164
  * Profit information for a swap
157
165
  */
158
- interface Profit {
166
+ export interface Profit {
159
167
  /** Profit amount in base units */
160
168
  readonly amount: number;
161
169
  /** The asset in which profit is denominated */
@@ -164,7 +172,7 @@ interface Profit {
164
172
  /**
165
173
  * A single step in a swap route path
166
174
  */
167
- interface PathElement {
175
+ export interface PathElement {
168
176
  /** Protocol name and fee tier */
169
177
  readonly name: string;
170
178
  /** Protocol class identifier */
@@ -177,7 +185,7 @@ interface PathElement {
177
185
  /**
178
186
  * A route with its percentage of the total swap amount
179
187
  */
180
- interface Route {
188
+ export interface Route {
181
189
  /** Percentage of total swap amount routed through this path */
182
190
  readonly percentage: number;
183
191
  /** The sequence of swaps in this route */
@@ -186,7 +194,7 @@ interface Route {
186
194
  /**
187
195
  * Quote from a specific DEX protocol
188
196
  */
189
- interface DexQuote {
197
+ export interface DexQuote {
190
198
  /** Protocol name and fee tier */
191
199
  readonly name: string;
192
200
  /** Protocol class */
@@ -197,16 +205,46 @@ interface DexQuote {
197
205
  /**
198
206
  * Encrypted transaction payload from the quote
199
207
  */
200
- interface TxnPayload {
208
+ export interface TxnPayload {
201
209
  /** Initialization vector for decryption */
202
210
  readonly iv: string;
203
211
  /** Encrypted transaction data */
204
212
  readonly data: string;
205
213
  }
214
+ /**
215
+ * Bonding-curve details for a quote that buys or sells a pre-bonding HayLaunch token
216
+ *
217
+ * Amounts are in base units of the bonding asset.
218
+ */
219
+ export interface LaunchQuote {
220
+ /** `'buy'` when the launch token is the output, `'sell'` when it is the input */
221
+ readonly side: 'buy' | 'sell';
222
+ /** HayLaunch token number */
223
+ readonly tokenNum: number;
224
+ /** Asset the token is bonded in (0 for ALGO) */
225
+ readonly bondingTokenId: number;
226
+ /** Bonding asset expected to be left in the wallet after the trade */
227
+ readonly bondingSurplus: number;
228
+ /** Bonding asset refunded when a buy completes bonding (omitted otherwise) */
229
+ readonly refund?: number;
230
+ /** Whether a buy completes bonding (omitted otherwise) */
231
+ readonly graduates?: boolean;
232
+ }
233
+ /**
234
+ * Normalized bonding-curve details on a SwapQuote, with amounts coerced to bigint
235
+ */
236
+ export type SwapLaunchQuote = Omit<LaunchQuote, 'bondingSurplus' | 'refund' | 'graduates'> & {
237
+ /** Bonding asset expected to be left in the wallet after the trade */
238
+ readonly bondingSurplus: bigint;
239
+ /** Bonding asset refunded when a buy completes bonding (0n otherwise) */
240
+ readonly refund: bigint;
241
+ /** Whether a buy completes bonding */
242
+ readonly graduates: boolean;
243
+ };
206
244
  /**
207
245
  * Quote response from the Haystack Router API
208
246
  */
209
- interface FetchQuoteResponse {
247
+ export interface FetchQuoteResponse {
210
248
  /** The quoted output amount or input amount (depending on quote type) */
211
249
  readonly quote: string | number;
212
250
  /** Profit information for the swap */
@@ -241,13 +279,18 @@ interface FetchQuoteResponse {
241
279
  readonly type: string;
242
280
  /** Performance timing data */
243
281
  readonly timing?: unknown;
282
+ /**
283
+ * Bonding-curve details, present only when one side is a pre-bonding HayLaunch token.
284
+ * For a buy, `quote` is launch tokens out; for a sell, it is the output asset.
285
+ */
286
+ readonly launch?: LaunchQuote;
244
287
  }
245
288
  /**
246
289
  * Enhanced quote result returned by RouterClient.newQuote()
247
290
  *
248
291
  * Extends the raw API response with additional metadata and type normalization.
249
292
  */
250
- type SwapQuote = Omit<FetchQuoteResponse, 'quote'> & {
293
+ export type SwapQuote = Omit<FetchQuoteResponse, 'quote' | 'launch'> & {
251
294
  /**
252
295
  * The quoted output amount or input amount (coerced to bigint)
253
296
  *
@@ -259,13 +302,17 @@ type SwapQuote = Omit<FetchQuoteResponse, 'quote'> & {
259
302
  readonly amount: bigint;
260
303
  /** The address parameter from the quote request (if provided) */
261
304
  readonly address?: string;
305
+ /** The slippage sent with the quote request (if provided) */
306
+ readonly slippage?: number;
307
+ /** Bonding-curve details, present only when one side is a pre-bonding HayLaunch token */
308
+ readonly launch?: SwapLaunchQuote;
262
309
  /** Timestamp when the quote was created (in milliseconds) */
263
310
  readonly createdAt: number;
264
311
  };
265
312
  /**
266
313
  * Transaction signature from the Haystack Router API
267
314
  */
268
- interface Signature {
315
+ export interface Signature {
269
316
  /** Signature type */
270
317
  readonly type: 'logic_signature' | 'secret_key';
271
318
  /** Signature data */
@@ -274,7 +321,7 @@ interface Signature {
274
321
  /**
275
322
  * Transaction data from the Haystack Router API
276
323
  */
277
- interface SwapTransaction {
324
+ export interface SwapTransaction {
278
325
  /** Base64-encoded transaction data */
279
326
  readonly data: string;
280
327
  /** Group ID for the transaction */
@@ -287,7 +334,7 @@ interface SwapTransaction {
287
334
  /**
288
335
  * Parameters for fetching executable swap transactions
289
336
  */
290
- interface FetchSwapTxnsParams {
337
+ export interface FetchSwapTxnsParams {
291
338
  /** Quote response from fetchQuote() or newQuote() */
292
339
  readonly quote: FetchQuoteResponse | SwapQuote;
293
340
  /** Algorand address that will sign the transactions */
@@ -300,7 +347,7 @@ interface FetchSwapTxnsParams {
300
347
  *
301
348
  * @internal
302
349
  */
303
- interface FetchSwapTxnsBody {
350
+ export interface FetchSwapTxnsBody {
304
351
  /** API key for authentication */
305
352
  readonly apiKey: string;
306
353
  /** Address of the account that will sign the transactions */
@@ -313,24 +360,49 @@ interface FetchSwapTxnsBody {
313
360
  /**
314
361
  * Response from fetching swap transactions
315
362
  */
316
- interface FetchSwapTxnsResponse {
363
+ export interface FetchSwapTxnsResponse {
317
364
  /** Array of transaction data */
318
365
  readonly txns: SwapTransaction[];
319
366
  }
367
+ /**
368
+ * Bonding-curve leg of an executed pre-bonding HayLaunch swap
369
+ */
370
+ export interface LaunchSummary {
371
+ /** `'buy'` when the launch token was the output, `'sell'` when it was the input */
372
+ side: 'buy' | 'sell';
373
+ /** HayLaunch token number */
374
+ tokenNum: bigint;
375
+ /** Transaction ID of the curve buy or sell call */
376
+ curveTxnId: string;
377
+ /**
378
+ * Bonding asset that went through the curve, in base units: the payment into
379
+ * the curve on a buy, or the curve's payout on a sell. Undefined if it
380
+ * couldn't be determined.
381
+ */
382
+ bondingAmount?: bigint;
383
+ /** Bonding asset refunded by a buy that completed bonding (0n otherwise) */
384
+ refund: bigint;
385
+ }
320
386
  /**
321
387
  * Summary of a swap transaction group after execution
322
388
  *
323
389
  * Contains the exact input/output amounts and total transaction fees.
324
390
  * Only available after calling execute() on a SwapComposer instance.
325
391
  */
326
- interface SwapSummary {
392
+ export interface SwapSummary {
327
393
  /** Input asset ID (0 for ALGO) */
328
394
  inputAssetId: bigint;
329
395
  /** Output asset ID (0 for ALGO) */
330
396
  outputAssetId: bigint;
331
- /** Exact input amount in base units, from the user-signed transaction */
397
+ /**
398
+ * Exact input amount in base units, from the user-signed transaction.
399
+ * For a launch sell, the launch tokens sold.
400
+ */
332
401
  inputAmount: bigint;
333
- /** Exact output amount received in base units, from the inner transaction */
402
+ /**
403
+ * Exact output amount received in base units, from the inner transaction.
404
+ * For a launch buy, the launch tokens credited by the curve.
405
+ */
334
406
  outputAmount: bigint;
335
407
  /** Quote type */
336
408
  type: QuoteType;
@@ -338,19 +410,27 @@ interface SwapSummary {
338
410
  totalFees: bigint;
339
411
  /** Number of transactions in the group */
340
412
  transactionCount: number;
341
- /** Transaction ID of the user-signed input transaction (payment/asset transfer) */
413
+ /**
414
+ * Transaction ID of the user-signed input transaction (payment/asset transfer).
415
+ * For a launch sell, the curve sell call.
416
+ */
342
417
  inputTxnId: string;
343
- /** Transaction ID of the app call containing the output transfer as an inner transaction */
418
+ /**
419
+ * Transaction ID of the app call containing the output transfer as an inner transaction.
420
+ * For a launch buy, the curve buy call.
421
+ */
344
422
  outputTxnId: string;
345
423
  /** Address that sent the input asset (the user) */
346
424
  inputSender: string;
347
- /** Address that sent the output asset to the user */
425
+ /** Address that sent the output asset to the user (the HayLaunch app on a launch buy) */
348
426
  outputSender: string;
427
+ /** Bonding-curve details, present only for a pre-bonding HayLaunch swap */
428
+ launch?: LaunchSummary;
349
429
  }
350
430
  /**
351
431
  * Method call to be executed as part of the swap
352
432
  */
353
- interface MethodCall {
433
+ export interface MethodCall {
354
434
  /** The ID of the smart contract to call. Set this to 0 to indicate an application creation call. */
355
435
  appID: number | bigint;
356
436
  /** The method to call on the smart contract */
@@ -403,7 +483,7 @@ interface MethodCall {
403
483
  /**
404
484
  * Context provided to middleware shouldApply hook
405
485
  */
406
- interface QuoteContext {
486
+ export interface QuoteContext {
407
487
  /** Input asset ID (always bigint for precision and future-proofing) */
408
488
  readonly fromASAID: bigint;
409
489
  /** Output asset ID (always bigint for precision and future-proofing) */
@@ -420,7 +500,7 @@ interface QuoteContext {
420
500
  /**
421
501
  * Context provided to middleware hooks during swap composition
422
502
  */
423
- interface SwapContext {
503
+ export interface SwapContext {
424
504
  /** The quote result from newQuote() */
425
505
  readonly quote: SwapQuote;
426
506
  /** The address of the account performing the swap */
@@ -470,7 +550,7 @@ interface SwapContext {
470
550
  * }
471
551
  * ```
472
552
  */
473
- interface SwapMiddleware {
553
+ export interface SwapMiddleware {
474
554
  /** Unique identifier for the middleware */
475
555
  readonly name: string;
476
556
  /** Semantic version of the middleware */
@@ -619,7 +699,7 @@ interface SwapMiddleware {
619
699
  /**
620
700
  * Configuration options for AutoOptOutMiddleware
621
701
  */
622
- interface AutoOptOutConfig {
702
+ export interface AutoOptOutConfig {
623
703
  /**
624
704
  * Array of asset IDs that should be excluded from automatic opt-out behavior
625
705
  * @default []
@@ -639,7 +719,7 @@ interface AutoOptOutConfig {
639
719
  * })
640
720
  *
641
721
  * const router = new RouterClient({
642
- * apiKey: 'your-api-key',
722
+ * apiKey: '1b72df7e-1131-4449-8ce1-29b79dd3f51e', // Free tier (60 requests/min)
643
723
  * middleware: [autoOptOut],
644
724
  * })
645
725
  *
@@ -653,7 +733,7 @@ interface AutoOptOutConfig {
653
733
  * })
654
734
  * ```
655
735
  */
656
- declare class AutoOptOutMiddleware implements SwapMiddleware {
736
+ export declare class AutoOptOutMiddleware implements SwapMiddleware {
657
737
  readonly name = "AutoOptOut";
658
738
  readonly version = "1.0.0";
659
739
  private readonly excludedAssets;
@@ -672,11 +752,11 @@ declare class AutoOptOutMiddleware implements SwapMiddleware {
672
752
  * @param indexesToSign - Array of indexes indicating which transactions need signing
673
753
  * @returns Array of signed transactions (may include nulls for ARC-1 compliant wallets)
674
754
  */
675
- type SignerFunction = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<(Uint8Array | null)[]>;
755
+ export type SignerFunction = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<(Uint8Array | null)[]>;
676
756
  /**
677
757
  * Status of the SwapComposer transaction group lifecycle
678
758
  */
679
- declare enum SwapComposerStatus {
759
+ export declare enum SwapComposerStatus {
680
760
  /** The atomic group is still under construction. */
681
761
  BUILDING = 0,
682
762
  /** The atomic group has been finalized, but not yet signed. */
@@ -686,12 +766,12 @@ declare enum SwapComposerStatus {
686
766
  /** The atomic group has been finalized, signed, and submitted to the network. */
687
767
  SUBMITTED = 3,
688
768
  /** The atomic group has been finalized, signed, submitted, and successfully committed to a block. */
689
- COMMITTED = 4,
769
+ COMMITTED = 4
690
770
  }
691
771
  /**
692
772
  * Configuration for creating a SwapComposer instance
693
773
  */
694
- interface SwapComposerConfig {
774
+ export interface SwapComposerConfig {
695
775
  /** The quote response from fetchQuote() or newQuote() */
696
776
  readonly quote: FetchQuoteResponse | SwapQuote;
697
777
  /** The swap transactions from fetchSwapTransactions() */
@@ -727,7 +807,7 @@ interface SwapComposerConfig {
727
807
  * .execute()
728
808
  * ```
729
809
  */
730
- declare class SwapComposer {
810
+ export declare class SwapComposer {
731
811
  /** The ATC used to compose the group */
732
812
  private atc;
733
813
  /** The maximum size of an atomic transaction group. */
@@ -744,6 +824,7 @@ declare class SwapComposer {
744
824
  private readonly note?;
745
825
  private inputTransactionIndex?;
746
826
  private outputTransactionIndex?;
827
+ private curveTransactionIndex?;
747
828
  /** Summary data built incrementally during swap composition */
748
829
  private summaryData?;
749
830
  /**
@@ -961,6 +1042,21 @@ declare class SwapComposer {
961
1042
  * Also initializes summaryData with input transaction details and output transaction ID
962
1043
  */
963
1044
  private processSwapTransactions;
1045
+ /**
1046
+ * Finds the swap's input transaction: the user's payment or asset transfer
1047
+ * to the router app, whose address comes from the router's pre-signed app
1048
+ * calls. Falls back to the last user-signed transaction for groups without
1049
+ * a router app call.
1050
+ */
1051
+ private findInputTransactionIndex;
1052
+ /**
1053
+ * For a launch quote, finds the user-signed curve buy or sell call and
1054
+ * records the curve leg in summaryData. On a sell, the input amount becomes
1055
+ * the launch tokens sold.
1056
+ *
1057
+ * @returns The curve call's index within the swap transactions, if found
1058
+ */
1059
+ private initLaunchSummary;
964
1060
  /**
965
1061
  * Creates opt-in transactions for apps the user hasn't opted into yet
966
1062
  */
@@ -985,7 +1081,9 @@ declare class SwapComposer {
985
1081
  * Extract the actual output amount from the confirmed output transaction's inner transactions
986
1082
  *
987
1083
  * Analyzes only the output transaction (last app call in the swap) to find the
988
- * inner transaction that transfers the output asset to the user.
1084
+ * inner transaction that transfers the output asset to the user. On a launch
1085
+ * buy the output is a balance on the HayLaunch app, so it is read from the
1086
+ * curve buy call's return value instead.
989
1087
  */
990
1088
  private extractActualOutputAmount;
991
1089
  }
@@ -1001,14 +1099,14 @@ declare class SwapComposer {
1001
1099
  * @example
1002
1100
  * ```typescript
1003
1101
  * const router = new RouterClient({
1004
- * apiKey: 'your-api-key',
1102
+ * apiKey: '1b72df7e-1131-4449-8ce1-29b79dd3f51e', // Free tier (60 requests/min)
1005
1103
  * })
1006
1104
  * ```
1007
1105
  *
1008
1106
  * @example
1009
1107
  * ```typescript
1010
1108
  * const router = new RouterClient({
1011
- * apiKey: 'your-api-key',
1109
+ * apiKey: '1b72df7e-1131-4449-8ce1-29b79dd3f51e', // Free tier (60 requests/min)
1012
1110
  * apiBaseUrl: 'https://hayrouter.txnlab.dev',
1013
1111
  * algodUri: 'https://mainnet-api.4160.nodely.dev/',
1014
1112
  * algodToken: '',
@@ -1019,7 +1117,7 @@ declare class SwapComposer {
1019
1117
  * })
1020
1118
  * ```
1021
1119
  */
1022
- declare class RouterClient {
1120
+ export declare class RouterClient {
1023
1121
  private readonly config;
1024
1122
  private readonly algodClient;
1025
1123
  private readonly middleware;
@@ -1060,6 +1158,7 @@ declare class RouterClient {
1060
1158
  * - If true: API reduces maxGroupSize by 1 and includes opt-in (always included, even if not needed)
1061
1159
  * - If false: No opt-in transaction included
1062
1160
  * - If undefined: Falls back to `config.autoOptIn` behavior with account check (if `params.address` is provided)
1161
+ * @param params.slippage - Slippage tolerance as a percentage, in [0, 100). Pass the value you will execute with; required for accurate pre-bonding launch token quotes
1063
1162
  * @returns A FetchQuoteResponse object with routing information
1064
1163
  *
1065
1164
  * @example
@@ -1130,6 +1229,7 @@ declare class RouterClient {
1130
1229
  * @param params.maxDepth - The maximum depth (default: 4)
1131
1230
  * @param params.address - The address of the account that will perform the swap (recommended when using `config.autoOptIn` or `params.optIn`)
1132
1231
  * @param params.optIn - Whether to include asset opt-in transaction
1232
+ * @param params.slippage - Slippage tolerance as a percentage, in [0, 100). Pass the value you will execute with; required for accurate pre-bonding launch token quotes
1133
1233
  * @returns A SwapQuote enhanced quote result
1134
1234
  *
1135
1235
  * @example
@@ -1213,6 +1313,10 @@ declare class RouterClient {
1213
1313
  * Validates an Algorand address
1214
1314
  */
1215
1315
  private validateAddress;
1316
+ /**
1317
+ * Validates a slippage percentage (0 <= slippage < 100)
1318
+ */
1319
+ private validateSlippage;
1216
1320
  /**
1217
1321
  * Validates the fee in basis points (max 300 = 3.00%)
1218
1322
  */
@@ -1223,7 +1327,7 @@ declare class RouterClient {
1223
1327
  /**
1224
1328
  * HTTP error with status code and response data
1225
1329
  */
1226
- declare class HTTPError extends Error {
1330
+ export declare class HTTPError extends Error {
1227
1331
  status: number;
1228
1332
  statusText: string;
1229
1333
  data: unknown;
@@ -1240,7 +1344,6 @@ declare class HTTPError extends Error {
1240
1344
  * @returns Parsed JSON response
1241
1345
  * @throws HTTPError if the response status is not ok
1242
1346
  */
1243
- declare function request<T>(url: string, options?: RequestInit): Promise<T>;
1347
+ export declare function request<T>(url: string, options?: RequestInit): Promise<T>;
1244
1348
  //#endregion
1245
- export { Asset, AutoOptOutConfig, AutoOptOutMiddleware, Config, ConfigParams, DEFAULT_ALGOD_PORT, DEFAULT_ALGOD_TOKEN, DEFAULT_ALGOD_URI, DEFAULT_API_BASE_URL, DEFAULT_AUTO_OPT_IN, DEFAULT_CONFIRMATION_ROUNDS, DEFAULT_DEBUG_LEVEL, DEFAULT_FEE_BPS, DEFAULT_MAX_DEPTH, DEFAULT_MAX_GROUP_SIZE, DEPRECATED_PROTOCOLS, DexQuote, FetchQuoteParams, FetchQuoteResponse, FetchSwapTxnsBody, FetchSwapTxnsParams, FetchSwapTxnsResponse, HTTPError, MAX_FEE_BPS, MethodCall, PathElement, Profit, Protocol, QuoteContext, QuoteType, Route, RouterClient, Signature, SignerFunction, SwapComposer, SwapComposerConfig, SwapComposerStatus, SwapContext, SwapMiddleware, SwapQuote, SwapSummary, SwapTransaction, TxnPayload, request };
1246
1349
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/types.ts","../src/middleware.ts","../src/composer.ts","../src/client.ts","../src/utils.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/constants.ts","../src/types.ts","../src/middleware.ts","../src/composer.ts","../src/client.ts","../src/utils.ts"],"mappings":"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"}