@lendasat/lendaswap-sdk-pure 0.2.35 → 0.2.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/cctp-inbound/index.d.ts +1 -0
- package/dist/cctp-inbound/index.d.ts.map +1 -1
- package/dist/cctp-inbound/index.js +1 -0
- package/dist/cctp-inbound/index.js.map +1 -1
- package/dist/cctp-inbound/recover.d.ts +89 -0
- package/dist/cctp-inbound/recover.d.ts.map +1 -0
- package/dist/cctp-inbound/recover.js +177 -0
- package/dist/cctp-inbound/recover.js.map +1 -0
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -3
- package/dist/client.js.map +1 -1
- package/dist/generated/api.d.ts +559 -0
- package/dist/generated/api.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/redeem/gasless.d.ts +1 -1
- package/dist/redeem/gasless.d.ts.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/generated/api.d.ts
CHANGED
|
@@ -223,6 +223,78 @@ export interface paths {
|
|
|
223
223
|
patch?: never;
|
|
224
224
|
trace?: never;
|
|
225
225
|
};
|
|
226
|
+
"/dex-calldata/claim": {
|
|
227
|
+
parameters: {
|
|
228
|
+
query?: never;
|
|
229
|
+
header?: never;
|
|
230
|
+
path?: never;
|
|
231
|
+
cookie?: never;
|
|
232
|
+
};
|
|
233
|
+
get?: never;
|
|
234
|
+
put?: never;
|
|
235
|
+
/**
|
|
236
|
+
* Fetch fresh calldata for the **claim** flow.
|
|
237
|
+
* @description User redeems tBTC from the HTLC and swaps it for the foreign target
|
|
238
|
+
* landing on the same EOA. The server uses `recipient = sender`.
|
|
239
|
+
*
|
|
240
|
+
* Stateless — no swap-id binding, no persistence. The SDK is expected to
|
|
241
|
+
* call this immediately before submitting a user op so the calldata stays
|
|
242
|
+
* fresh; on `AA23 reverted` / slippage failure the SDK should retry.
|
|
243
|
+
*/
|
|
244
|
+
post: operations["post_dex_calldata_claim"];
|
|
245
|
+
delete?: never;
|
|
246
|
+
options?: never;
|
|
247
|
+
head?: never;
|
|
248
|
+
patch?: never;
|
|
249
|
+
trace?: never;
|
|
250
|
+
};
|
|
251
|
+
"/dex-calldata/fund": {
|
|
252
|
+
parameters: {
|
|
253
|
+
query?: never;
|
|
254
|
+
header?: never;
|
|
255
|
+
path?: never;
|
|
256
|
+
cookie?: never;
|
|
257
|
+
};
|
|
258
|
+
get?: never;
|
|
259
|
+
put?: never;
|
|
260
|
+
/**
|
|
261
|
+
* Fetch fresh calldata for the **fund** flow.
|
|
262
|
+
* @description User spends source tokens on their own EOA; the swap output lands on
|
|
263
|
+
* the HTLC coordinator (derived server-side from `to_chain`).
|
|
264
|
+
*
|
|
265
|
+
* Stateless — no swap-id binding, no persistence. The SDK is expected to
|
|
266
|
+
* call this immediately before submitting a user op so the calldata stays
|
|
267
|
+
* fresh; on `AA23 reverted` / slippage failure the SDK should retry.
|
|
268
|
+
*/
|
|
269
|
+
post: operations["post_dex_calldata_fund"];
|
|
270
|
+
delete?: never;
|
|
271
|
+
options?: never;
|
|
272
|
+
head?: never;
|
|
273
|
+
patch?: never;
|
|
274
|
+
trace?: never;
|
|
275
|
+
};
|
|
276
|
+
"/dex-quote": {
|
|
277
|
+
parameters: {
|
|
278
|
+
query?: never;
|
|
279
|
+
header?: never;
|
|
280
|
+
path?: never;
|
|
281
|
+
cookie?: never;
|
|
282
|
+
};
|
|
283
|
+
get?: never;
|
|
284
|
+
put?: never;
|
|
285
|
+
/**
|
|
286
|
+
* Quote the EVM leg of a foreign-target swap.
|
|
287
|
+
* @description Read-only price discovery — no calldata is constructed and no slippage
|
|
288
|
+
* is applied. For execution, call [`/dex-calldata`] which returns
|
|
289
|
+
* slippage-adjusted bounds plus the bytes to submit.
|
|
290
|
+
*/
|
|
291
|
+
post: operations["post_dex_quote"];
|
|
292
|
+
delete?: never;
|
|
293
|
+
options?: never;
|
|
294
|
+
head?: never;
|
|
295
|
+
patch?: never;
|
|
296
|
+
trace?: never;
|
|
297
|
+
};
|
|
226
298
|
"/evm-tokens": {
|
|
227
299
|
parameters: {
|
|
228
300
|
query?: never;
|
|
@@ -1626,6 +1698,53 @@ export interface components {
|
|
|
1626
1698
|
/** @description List of VTXO outpoints to refresh */
|
|
1627
1699
|
vtxos: string[];
|
|
1628
1700
|
};
|
|
1701
|
+
/**
|
|
1702
|
+
* @description Which side the caller is pinning on the requested swap.
|
|
1703
|
+
*
|
|
1704
|
+
* Stringified `u128` rather than typed integer — matches the rest of the
|
|
1705
|
+
* API (`net_source_amount`, `min_amount_out`, …) and dodges the JS
|
|
1706
|
+
* `Number` precision cliff at 2^53 for 18-decimal tokens.
|
|
1707
|
+
*/
|
|
1708
|
+
DexAmount: {
|
|
1709
|
+
/** @enum {string} */
|
|
1710
|
+
kind: "exact_in";
|
|
1711
|
+
/**
|
|
1712
|
+
* @description Spend exactly this much `from_token`; receive at least the
|
|
1713
|
+
* response's `estimated_amount_out` (post-slippage) of `to_token`.
|
|
1714
|
+
*/
|
|
1715
|
+
value: string;
|
|
1716
|
+
} | {
|
|
1717
|
+
/** @enum {string} */
|
|
1718
|
+
kind: "exact_out";
|
|
1719
|
+
/**
|
|
1720
|
+
* @description Receive exactly this much `to_token`; spend at most the
|
|
1721
|
+
* response's `expected_amount_in` (post-slippage) of `from_token`.
|
|
1722
|
+
*/
|
|
1723
|
+
value: string;
|
|
1724
|
+
};
|
|
1725
|
+
/**
|
|
1726
|
+
* @description A single EVM contract call the SDK should embed in its batch user op.
|
|
1727
|
+
*
|
|
1728
|
+
* The list ordering matters — the SDK must submit calls in the order
|
|
1729
|
+
* returned. Today this is always `[approve(spender, amount), router.swap(...)]`:
|
|
1730
|
+
* v1 targets fresh EIP-7702-delegated EOAs that start with zero
|
|
1731
|
+
* allowance, so the approve is unconditional. When native-ETH inputs
|
|
1732
|
+
* or stable-allowance paths land, the approve will be dropped when
|
|
1733
|
+
* `allowance(sender, spender) >= amount` and the response will be a
|
|
1734
|
+
* single-element list.
|
|
1735
|
+
*/
|
|
1736
|
+
DexCall: {
|
|
1737
|
+
/** @description ABI-encoded calldata to send to `target` (`0x`-prefixed hex). */
|
|
1738
|
+
data: string;
|
|
1739
|
+
/** @description Contract address the SDK must `call` (with `value`). */
|
|
1740
|
+
target: string;
|
|
1741
|
+
/**
|
|
1742
|
+
* @description `msg.value` to attach, as a stringified `u256`. Almost always
|
|
1743
|
+
* `"0"` for token-only flows; non-zero only when the swap involves
|
|
1744
|
+
* native ETH on either leg.
|
|
1745
|
+
*/
|
|
1746
|
+
value: string;
|
|
1747
|
+
};
|
|
1629
1748
|
/** @description DEX swap calldata for the coordinator contract. */
|
|
1630
1749
|
DexCallData: {
|
|
1631
1750
|
data: string;
|
|
@@ -1641,6 +1760,230 @@ export interface components {
|
|
|
1641
1760
|
/** @description Native token value (usually "0") */
|
|
1642
1761
|
value?: string;
|
|
1643
1762
|
};
|
|
1763
|
+
/**
|
|
1764
|
+
* @description Request shared by both `/dex-calldata/claim` and `/dex-calldata/fund`.
|
|
1765
|
+
*
|
|
1766
|
+
* The flow-specific `recipient` is deliberately not part of this struct —
|
|
1767
|
+
* each flow's handler resolves it from configuration (fund) or echoes the
|
|
1768
|
+
* sender (claim).
|
|
1769
|
+
*/
|
|
1770
|
+
DexCalldataRequest: {
|
|
1771
|
+
/**
|
|
1772
|
+
* @description Either the input amount (exact-in) or the desired output amount
|
|
1773
|
+
* (exact-out), both as stringified `u128` smallest-unit values.
|
|
1774
|
+
*/
|
|
1775
|
+
amount: components["schemas"]["DexAmount"];
|
|
1776
|
+
/**
|
|
1777
|
+
* @description Source asset the SDK will spend. Must be a [`Token::Evm`] variant —
|
|
1778
|
+
* EOAs only delegate via EIP-7702 on EVM. `Solana` is rejected with
|
|
1779
|
+
* a 400.
|
|
1780
|
+
*/
|
|
1781
|
+
from: components["schemas"]["Token"];
|
|
1782
|
+
/**
|
|
1783
|
+
* @description Address that holds (and will spend) `from.address` on its chain.
|
|
1784
|
+
* This is the address the SDK will sign the user op against — under
|
|
1785
|
+
* EIP-7702 + Kernel that's the user's 7702-delegated EOA.
|
|
1786
|
+
*
|
|
1787
|
+
* Routers bake `sender` assumptions into the calldata (e.g. allowance
|
|
1788
|
+
* checks, permit sources, refund destinations), so passing the wrong
|
|
1789
|
+
* address here produces calldata that either fails routing
|
|
1790
|
+
* pre-submission or reverts on-chain.
|
|
1791
|
+
*/
|
|
1792
|
+
sender: string;
|
|
1793
|
+
/**
|
|
1794
|
+
* Format: int32
|
|
1795
|
+
* @description Slippage tolerance in basis points (e.g. `100` = 1%, `50` = 0.5%).
|
|
1796
|
+
* Bounded server-side; out-of-range values return 400.
|
|
1797
|
+
*/
|
|
1798
|
+
slippage_bps: number;
|
|
1799
|
+
/** @description Target asset the swap will produce. */
|
|
1800
|
+
to: components["schemas"]["Token"];
|
|
1801
|
+
};
|
|
1802
|
+
DexCalldataResponse: {
|
|
1803
|
+
/**
|
|
1804
|
+
* @description Chain identifier on which the SDK must submit `payload` (always
|
|
1805
|
+
* equal to the request's `from_chain`; surfaced explicitly so the
|
|
1806
|
+
* SDK doesn't have to track it across the request/response
|
|
1807
|
+
* boundary).
|
|
1808
|
+
*/
|
|
1809
|
+
chain: string;
|
|
1810
|
+
/**
|
|
1811
|
+
* @description Estimated amount of `to_token` the user will receive on `to_chain`,
|
|
1812
|
+
* as a stringified `u128` smallest-unit value.
|
|
1813
|
+
*
|
|
1814
|
+
* - `ExactIn`: the slippage-adjusted *minimum* output. The swap call will revert on-chain if
|
|
1815
|
+
* the actual output is less.
|
|
1816
|
+
* - `ExactOut`: echoes the pinned output amount from the request.
|
|
1817
|
+
*/
|
|
1818
|
+
estimated_amount_out: string;
|
|
1819
|
+
/**
|
|
1820
|
+
* Format: int32
|
|
1821
|
+
* @description Rough upper bound on how long settlement on `to_chain` takes
|
|
1822
|
+
* once the user op lands on `from_chain`. ~1 for same-chain
|
|
1823
|
+
* swaps, ~15 for CCTP fast-transfer, minutes for slower bridges.
|
|
1824
|
+
* SDK uses this to size status-poll backoff.
|
|
1825
|
+
*/
|
|
1826
|
+
estimated_settlement_seconds: number;
|
|
1827
|
+
/**
|
|
1828
|
+
* @description Amount of `from_token` the user must provide on `from_chain`, as a
|
|
1829
|
+
* stringified `u128` smallest-unit value.
|
|
1830
|
+
*
|
|
1831
|
+
* - `ExactIn`: echoes the pinned input amount from the request.
|
|
1832
|
+
* - `ExactOut`: the slippage-adjusted *maximum* input the SDK must be willing to spend to
|
|
1833
|
+
* guarantee receiving the pinned output. The SDK should fund / approve at least this
|
|
1834
|
+
* amount.
|
|
1835
|
+
*/
|
|
1836
|
+
expected_amount_in: string;
|
|
1837
|
+
/**
|
|
1838
|
+
* @description Chain-native instructions the SDK must submit on `chain`. Today
|
|
1839
|
+
* always the `Evm` variant — see [`DexCallsPayload`] for the
|
|
1840
|
+
* forward-compatibility story when non-EVM source chains are added.
|
|
1841
|
+
*/
|
|
1842
|
+
payload: components["schemas"]["DexCallsPayload"];
|
|
1843
|
+
/**
|
|
1844
|
+
* @description Label identifying which router the server selected (`"lifi"`,
|
|
1845
|
+
* `"uniswap"`, `"curve"`, `"cctp"`, …). Informational only — SDK
|
|
1846
|
+
* behaviour is router-agnostic.
|
|
1847
|
+
*/
|
|
1848
|
+
router: string;
|
|
1849
|
+
};
|
|
1850
|
+
/**
|
|
1851
|
+
* @description Chain-native instructions the SDK must submit on `chain`.
|
|
1852
|
+
*
|
|
1853
|
+
* Tagged on `kind` so the response is shape-stable as new source-chain
|
|
1854
|
+
* kinds are added. Today only `Evm` exists (matching the v1 invariant
|
|
1855
|
+
* that `from_chain` is always an EVM chain — the SDK signs via
|
|
1856
|
+
* EIP-7702 + Kernel, which only works on EVM EOAs).
|
|
1857
|
+
*
|
|
1858
|
+
* When Solana-source support lands, a new variant — roughly
|
|
1859
|
+
* `Solana { instructions: Vec<SolanaInstruction>, accounts: Vec<AccountMeta>, recent_blockhash:
|
|
1860
|
+
* String }` — will be added. Clients that already switch on `kind` keep working;
|
|
1861
|
+
* only clients that need to *handle* Solana opt in by adding the new
|
|
1862
|
+
* match arm.
|
|
1863
|
+
*/
|
|
1864
|
+
DexCallsPayload: {
|
|
1865
|
+
calls: components["schemas"]["DexCall"][];
|
|
1866
|
+
/** @enum {string} */
|
|
1867
|
+
kind: "evm";
|
|
1868
|
+
};
|
|
1869
|
+
/**
|
|
1870
|
+
* @description A single hop in the route the server picked.
|
|
1871
|
+
*
|
|
1872
|
+
* One hop == one user op the SDK will need to submit. Multi-hop routes
|
|
1873
|
+
* (e.g. USDC@Optimism → USDC@Arbitrum via CCTP, then USDC@Arbitrum →
|
|
1874
|
+
* tBTC@Arbitrum via Uniswap) are represented as multiple entries in
|
|
1875
|
+
* [`DexQuoteResponse::hops`].
|
|
1876
|
+
*/
|
|
1877
|
+
DexQuoteHop: {
|
|
1878
|
+
estimated_amount_out: components["schemas"]["TokenAmount"];
|
|
1879
|
+
/**
|
|
1880
|
+
* Format: int32
|
|
1881
|
+
* @description Per-hop settlement time. Sum across `hops` ≈ end-to-end time.
|
|
1882
|
+
*/
|
|
1883
|
+
estimated_settlement_seconds: number;
|
|
1884
|
+
/**
|
|
1885
|
+
* @description Per-hop input/output (raw market estimates, no slippage). Useful
|
|
1886
|
+
* for showing the user a per-hop fee breakdown in the UI. Each side
|
|
1887
|
+
* carries the matching token's decimals for direct human-readable
|
|
1888
|
+
* formatting.
|
|
1889
|
+
*/
|
|
1890
|
+
expected_amount_in: components["schemas"]["TokenAmount"];
|
|
1891
|
+
/**
|
|
1892
|
+
* @description Source token for this hop. Carries chain id + address in the same
|
|
1893
|
+
* shape as the request — round-trips cleanly through the SDK.
|
|
1894
|
+
*/
|
|
1895
|
+
from: components["schemas"]["Token"];
|
|
1896
|
+
/** @description Per-hop router label (`"cctp"`, `"layerzero"`, `"uniswap"`, …). */
|
|
1897
|
+
router: string;
|
|
1898
|
+
/**
|
|
1899
|
+
* @description Destination token for this hop. Equal-chain to `from` for
|
|
1900
|
+
* same-chain swaps, different for bridges.
|
|
1901
|
+
*/
|
|
1902
|
+
to: components["schemas"]["Token"];
|
|
1903
|
+
};
|
|
1904
|
+
DexQuoteRequest: {
|
|
1905
|
+
/**
|
|
1906
|
+
* @description Either the input amount (exact-in) or the desired output amount
|
|
1907
|
+
* (exact-out), both as stringified `u128` smallest-unit values.
|
|
1908
|
+
*/
|
|
1909
|
+
amount: components["schemas"]["DexAmount"];
|
|
1910
|
+
/**
|
|
1911
|
+
* @description Source asset. Must be a [`Token::Evm`] variant — price discovery
|
|
1912
|
+
* is rooted in an EVM settlement hub; `Solana` is rejected with a
|
|
1913
|
+
* 400.
|
|
1914
|
+
*/
|
|
1915
|
+
from: components["schemas"]["Token"];
|
|
1916
|
+
/**
|
|
1917
|
+
* Format: int32
|
|
1918
|
+
* @description Slippage tolerance the SDK will use at execution time, in basis
|
|
1919
|
+
* points (e.g. `100` = 1%, `50` = 0.5%). Affects route selection —
|
|
1920
|
+
* some pools only quote at higher tolerances — so passing the same
|
|
1921
|
+
* value here that the SDK will later send to `/dex-calldata` keeps
|
|
1922
|
+
* the displayed quote consistent with what actually executes.
|
|
1923
|
+
* Bounded server-side; out-of-range values return 400.
|
|
1924
|
+
*/
|
|
1925
|
+
slippage_bps: number;
|
|
1926
|
+
/**
|
|
1927
|
+
* @description Target asset. Same-chain quotes use the same chain id as `from`;
|
|
1928
|
+
* cross-chain quotes use a different EVM chain id (Solana
|
|
1929
|
+
* destinations are reserved for future work).
|
|
1930
|
+
*/
|
|
1931
|
+
to: components["schemas"]["Token"];
|
|
1932
|
+
};
|
|
1933
|
+
DexQuoteResponse: {
|
|
1934
|
+
/**
|
|
1935
|
+
* Format: int32
|
|
1936
|
+
* @description How long the SDK can treat this quote as fresh, in seconds. Route
|
|
1937
|
+
* prices move slowly on the timescale of UI interactions, so
|
|
1938
|
+
* re-quoting on every keystroke is wasteful; the SDK should cache
|
|
1939
|
+
* for at least this long and only refetch when stale.
|
|
1940
|
+
*/
|
|
1941
|
+
cache_ttl_seconds: number;
|
|
1942
|
+
/**
|
|
1943
|
+
* @description End-to-end output amount across all hops.
|
|
1944
|
+
*
|
|
1945
|
+
* - `ExactIn`: the expected (mid-market) output for the pinned input, with the caller's
|
|
1946
|
+
* `slippage_bps` already factored into route selection.
|
|
1947
|
+
* - `ExactOut`: echoes the pinned output amount from the request.
|
|
1948
|
+
*/
|
|
1949
|
+
estimated_amount_out: components["schemas"]["TokenAmount"];
|
|
1950
|
+
/**
|
|
1951
|
+
* Format: int32
|
|
1952
|
+
* @description Sum of all hops' settlement times. Useful for showing the user a
|
|
1953
|
+
* rough end-to-end ETA alongside the price.
|
|
1954
|
+
*/
|
|
1955
|
+
estimated_settlement_seconds: number;
|
|
1956
|
+
/**
|
|
1957
|
+
* @description End-to-end input amount across all hops.
|
|
1958
|
+
*
|
|
1959
|
+
* - `ExactIn`: echoes the pinned input amount from the request.
|
|
1960
|
+
* - `ExactOut`: the expected (mid-market) input required to receive the pinned output, with
|
|
1961
|
+
* the caller's `slippage_bps` already factored into route selection.
|
|
1962
|
+
*/
|
|
1963
|
+
expected_amount_in: components["schemas"]["TokenAmount"];
|
|
1964
|
+
/**
|
|
1965
|
+
* @description Per-hop breakdown of the route. Always at least one entry.
|
|
1966
|
+
*
|
|
1967
|
+
* `hops.len() == 1`: single-hop route, one user op.
|
|
1968
|
+
* `hops.len() > 1`: multi-hop route, one user op per hop, submitted
|
|
1969
|
+
* in order and waiting for settlement between each. The SDK iterates
|
|
1970
|
+
* `hops` and calls [`/dex-calldata`] once per hop, deriving each
|
|
1971
|
+
* `/dex-calldata` request from the corresponding `DexQuoteHop`.
|
|
1972
|
+
*/
|
|
1973
|
+
hops: components["schemas"]["DexQuoteHop"][];
|
|
1974
|
+
/**
|
|
1975
|
+
* @description `true` iff `hops.len() > 1`. Surfaced explicitly so the SDK can
|
|
1976
|
+
* show the user a step counter ("Step 1 of 2") without iterating.
|
|
1977
|
+
*/
|
|
1978
|
+
requires_multiple_user_ops: boolean;
|
|
1979
|
+
/**
|
|
1980
|
+
* @description Top-level router label. Usually equals the only hop's router for
|
|
1981
|
+
* single-hop routes (`"lifi"`, `"uniswap"`, …), or a `+`-joined
|
|
1982
|
+
* composite for multi-hop (`"cctp+uniswap"`). Informational only —
|
|
1983
|
+
* SDK behaviour is driven by `hops`, not this string.
|
|
1984
|
+
*/
|
|
1985
|
+
router: string;
|
|
1986
|
+
};
|
|
1644
1987
|
/** @description EIP-2612 permit signature for gasless token->Permit2 approval. */
|
|
1645
1988
|
Eip2612Permit: {
|
|
1646
1989
|
/** Format: int64 */
|
|
@@ -2604,6 +2947,69 @@ export interface components {
|
|
|
2604
2947
|
* @enum {string}
|
|
2605
2948
|
*/
|
|
2606
2949
|
SwapStatus: "pending" | "clientfundingseen" | "clientfunded" | "clientrefunded" | "serverfunded" | "clientredeeming" | "clientredeemed" | "serverredeemed" | "clientfundedserverrefunded" | "clientrefundedserverfunded" | "clientrefundedserverrefunded" | "expired" | "clientinvalidfunded" | "clientfundedtoolate" | "serverwontfund" | "clientredeemedandclientrefunded";
|
|
2950
|
+
/**
|
|
2951
|
+
* @description A token identified by the chain it lives on plus a chain-native address.
|
|
2952
|
+
*
|
|
2953
|
+
* Tagged on `kind` so each chain family encodes the address in its own
|
|
2954
|
+
* natural format (hex on EVM, base58 on Solana, etc.). Validation is
|
|
2955
|
+
* post-deserialization — the wire types stay loose (`u64` chain id,
|
|
2956
|
+
* `String` address) and handlers reject unsupported chain ids or
|
|
2957
|
+
* malformed addresses with 400s.
|
|
2958
|
+
*
|
|
2959
|
+
* Today only EVM is consumed; `Solana` is reserved for the cross-chain
|
|
2960
|
+
* claim flow. Handlers that don't support a variant must error
|
|
2961
|
+
* explicitly so callers get a clear message instead of an opaque
|
|
2962
|
+
* downstream failure.
|
|
2963
|
+
*/
|
|
2964
|
+
Token: {
|
|
2965
|
+
/** @description Token contract address, lowercase hex, `0x`-prefixed. */
|
|
2966
|
+
address: string;
|
|
2967
|
+
/**
|
|
2968
|
+
* Format: int64
|
|
2969
|
+
* @description Numeric EVM chain id (`1` = Ethereum, `137` = Polygon,
|
|
2970
|
+
* `42161` = Arbitrum, etc.). Not constrained to the [`EvmChain`]
|
|
2971
|
+
* enum at parse time so we don't have to redeploy to support a
|
|
2972
|
+
* new chain.
|
|
2973
|
+
*/
|
|
2974
|
+
chain_id: number;
|
|
2975
|
+
/** @enum {string} */
|
|
2976
|
+
kind: "evm";
|
|
2977
|
+
} | {
|
|
2978
|
+
/**
|
|
2979
|
+
* @description SPL mint address, base58-encoded. For SPL targets the SDK
|
|
2980
|
+
* typically also needs the recipient's associated token account
|
|
2981
|
+
* — that's a separate request field, not part of the token
|
|
2982
|
+
* identity.
|
|
2983
|
+
*/
|
|
2984
|
+
address: string;
|
|
2985
|
+
/** @enum {string} */
|
|
2986
|
+
kind: "solana";
|
|
2987
|
+
};
|
|
2988
|
+
/**
|
|
2989
|
+
* @description Smallest-unit amount paired with the associated token's symbol and
|
|
2990
|
+
* decimal places, so the SDK can format `raw / 10^decimals` for
|
|
2991
|
+
* display (and label it with the symbol) without a separate lookup.
|
|
2992
|
+
*
|
|
2993
|
+
* `raw` is a stringified `u256` to dodge the JS `Number` precision
|
|
2994
|
+
* cliff at 2^53 (which 18-decimal tokens exceed routinely).
|
|
2995
|
+
*/
|
|
2996
|
+
TokenAmount: {
|
|
2997
|
+
/**
|
|
2998
|
+
* Format: int32
|
|
2999
|
+
* @description Decimal places of the associated token (`6` for USDC, `18` for
|
|
3000
|
+
* tBTC, etc.).
|
|
3001
|
+
*/
|
|
3002
|
+
decimals: number;
|
|
3003
|
+
/** @description Smallest-unit amount, stringified `u256`. */
|
|
3004
|
+
raw: string;
|
|
3005
|
+
/**
|
|
3006
|
+
* @description Ticker symbol of the associated token (`"USDC"`, `"tBTC"`, …),
|
|
3007
|
+
* when known. Omitted from the wire when the server can't resolve
|
|
3008
|
+
* it — informational only, do not key business logic on this
|
|
3009
|
+
* string.
|
|
3010
|
+
*/
|
|
3011
|
+
symbol?: string | null;
|
|
3012
|
+
};
|
|
2607
3013
|
/** @description Token identifier. Known values: btc, 0x123456 */
|
|
2608
3014
|
TokenId: "btc" | string;
|
|
2609
3015
|
TokenInfo: {
|
|
@@ -3217,6 +3623,159 @@ export interface operations {
|
|
|
3217
3623
|
};
|
|
3218
3624
|
};
|
|
3219
3625
|
};
|
|
3626
|
+
post_dex_calldata_claim: {
|
|
3627
|
+
parameters: {
|
|
3628
|
+
query?: never;
|
|
3629
|
+
header?: never;
|
|
3630
|
+
path?: never;
|
|
3631
|
+
cookie?: never;
|
|
3632
|
+
};
|
|
3633
|
+
requestBody: {
|
|
3634
|
+
content: {
|
|
3635
|
+
"application/json": components["schemas"]["DexCalldataRequest"];
|
|
3636
|
+
};
|
|
3637
|
+
};
|
|
3638
|
+
responses: {
|
|
3639
|
+
/** @description Fresh calldata ready to be embedded in a user op */
|
|
3640
|
+
200: {
|
|
3641
|
+
headers: {
|
|
3642
|
+
[name: string]: unknown;
|
|
3643
|
+
};
|
|
3644
|
+
content: {
|
|
3645
|
+
"application/json": components["schemas"]["DexCalldataResponse"];
|
|
3646
|
+
};
|
|
3647
|
+
};
|
|
3648
|
+
/** @description Bad request (unsupported chain pair, unknown token, malformed amount, slippage out of range) */
|
|
3649
|
+
400: {
|
|
3650
|
+
headers: {
|
|
3651
|
+
[name: string]: unknown;
|
|
3652
|
+
};
|
|
3653
|
+
content: {
|
|
3654
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3655
|
+
};
|
|
3656
|
+
};
|
|
3657
|
+
/** @description Internal server error */
|
|
3658
|
+
500: {
|
|
3659
|
+
headers: {
|
|
3660
|
+
[name: string]: unknown;
|
|
3661
|
+
};
|
|
3662
|
+
content: {
|
|
3663
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3664
|
+
};
|
|
3665
|
+
};
|
|
3666
|
+
/** @description Upstream router failed or returned no routable path for the requested pair */
|
|
3667
|
+
502: {
|
|
3668
|
+
headers: {
|
|
3669
|
+
[name: string]: unknown;
|
|
3670
|
+
};
|
|
3671
|
+
content: {
|
|
3672
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3673
|
+
};
|
|
3674
|
+
};
|
|
3675
|
+
};
|
|
3676
|
+
};
|
|
3677
|
+
post_dex_calldata_fund: {
|
|
3678
|
+
parameters: {
|
|
3679
|
+
query?: never;
|
|
3680
|
+
header?: never;
|
|
3681
|
+
path?: never;
|
|
3682
|
+
cookie?: never;
|
|
3683
|
+
};
|
|
3684
|
+
requestBody: {
|
|
3685
|
+
content: {
|
|
3686
|
+
"application/json": components["schemas"]["DexCalldataRequest"];
|
|
3687
|
+
};
|
|
3688
|
+
};
|
|
3689
|
+
responses: {
|
|
3690
|
+
/** @description Fresh calldata ready to be embedded in a user op */
|
|
3691
|
+
200: {
|
|
3692
|
+
headers: {
|
|
3693
|
+
[name: string]: unknown;
|
|
3694
|
+
};
|
|
3695
|
+
content: {
|
|
3696
|
+
"application/json": components["schemas"]["DexCalldataResponse"];
|
|
3697
|
+
};
|
|
3698
|
+
};
|
|
3699
|
+
/** @description Bad request (unsupported chain pair, unknown token, malformed amount, slippage out of range) */
|
|
3700
|
+
400: {
|
|
3701
|
+
headers: {
|
|
3702
|
+
[name: string]: unknown;
|
|
3703
|
+
};
|
|
3704
|
+
content: {
|
|
3705
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3706
|
+
};
|
|
3707
|
+
};
|
|
3708
|
+
/** @description Internal server error */
|
|
3709
|
+
500: {
|
|
3710
|
+
headers: {
|
|
3711
|
+
[name: string]: unknown;
|
|
3712
|
+
};
|
|
3713
|
+
content: {
|
|
3714
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3715
|
+
};
|
|
3716
|
+
};
|
|
3717
|
+
/** @description Upstream router failed or returned no routable path for the requested pair */
|
|
3718
|
+
502: {
|
|
3719
|
+
headers: {
|
|
3720
|
+
[name: string]: unknown;
|
|
3721
|
+
};
|
|
3722
|
+
content: {
|
|
3723
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3724
|
+
};
|
|
3725
|
+
};
|
|
3726
|
+
};
|
|
3727
|
+
};
|
|
3728
|
+
post_dex_quote: {
|
|
3729
|
+
parameters: {
|
|
3730
|
+
query?: never;
|
|
3731
|
+
header?: never;
|
|
3732
|
+
path?: never;
|
|
3733
|
+
cookie?: never;
|
|
3734
|
+
};
|
|
3735
|
+
requestBody: {
|
|
3736
|
+
content: {
|
|
3737
|
+
"application/json": components["schemas"]["DexQuoteRequest"];
|
|
3738
|
+
};
|
|
3739
|
+
};
|
|
3740
|
+
responses: {
|
|
3741
|
+
/** @description Price estimate for the requested EVM leg */
|
|
3742
|
+
200: {
|
|
3743
|
+
headers: {
|
|
3744
|
+
[name: string]: unknown;
|
|
3745
|
+
};
|
|
3746
|
+
content: {
|
|
3747
|
+
"application/json": components["schemas"]["DexQuoteResponse"];
|
|
3748
|
+
};
|
|
3749
|
+
};
|
|
3750
|
+
/** @description Bad request (unsupported chain pair, unknown token, malformed amount) */
|
|
3751
|
+
400: {
|
|
3752
|
+
headers: {
|
|
3753
|
+
[name: string]: unknown;
|
|
3754
|
+
};
|
|
3755
|
+
content: {
|
|
3756
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3757
|
+
};
|
|
3758
|
+
};
|
|
3759
|
+
/** @description Internal server error */
|
|
3760
|
+
500: {
|
|
3761
|
+
headers: {
|
|
3762
|
+
[name: string]: unknown;
|
|
3763
|
+
};
|
|
3764
|
+
content: {
|
|
3765
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3766
|
+
};
|
|
3767
|
+
};
|
|
3768
|
+
/** @description Upstream router failed or returned no routable path for the requested pair */
|
|
3769
|
+
502: {
|
|
3770
|
+
headers: {
|
|
3771
|
+
[name: string]: unknown;
|
|
3772
|
+
};
|
|
3773
|
+
content: {
|
|
3774
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3775
|
+
};
|
|
3776
|
+
};
|
|
3777
|
+
};
|
|
3778
|
+
};
|
|
3220
3779
|
get_evm_tokens: {
|
|
3221
3780
|
parameters: {
|
|
3222
3781
|
query?: {
|