@coinlist-co/react 0.12.1 → 0.12.2-rc.31c2f50
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/{chunk-DCW7NQXH.js → chunk-4IZ2F732.js} +52 -19
- package/dist/chunk-4IZ2F732.js.map +1 -0
- package/dist/{chunk-MOE5S6CE.js → chunk-NBO5E2RO.js} +152 -6
- package/dist/chunk-NBO5E2RO.js.map +1 -0
- package/dist/{chunk-VH34YC3Q.js → chunk-UJYSXXJF.js} +168 -3
- package/dist/chunk-UJYSXXJF.js.map +1 -0
- package/dist/client/index.cjs +1270 -977
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +117 -38
- package/dist/client/index.d.ts +117 -38
- package/dist/client/index.js +1077 -925
- package/dist/client/index.js.map +1 -1
- package/dist/server/index.cjs +507 -116
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +65 -41
- package/dist/server/index.d.ts +65 -41
- package/dist/server/index.js +321 -65
- package/dist/server/index.js.map +1 -1
- package/dist/time-CFocgYyl.d.cts +50 -0
- package/dist/time-DvgN98Q9.d.ts +50 -0
- package/dist/{token-registry-snapshot-BNBNuDu1.d.ts → token-registry-snapshot-BsAfBL_b.d.ts} +9 -7
- package/dist/{token-registry-snapshot-CqI6dXM_.d.cts → token-registry-snapshot-Cc_eA5zM.d.cts} +9 -7
- package/dist/{tokens-namespace-CIWBtgt2.d.cts → tokens-namespace-D_XSpiS-.d.cts} +154 -19
- package/dist/{tokens-namespace-CIWBtgt2.d.ts → tokens-namespace-D_XSpiS-.d.ts} +154 -19
- package/dist/universal/index.cjs +333 -40
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.d.cts +358 -5
- package/dist/universal/index.d.ts +358 -5
- package/dist/universal/index.js +28 -2
- package/package.json +1 -1
- package/dist/chunk-DCW7NQXH.js.map +0 -1
- package/dist/chunk-MOE5S6CE.js.map +0 -1
- package/dist/chunk-VH34YC3Q.js.map +0 -1
|
@@ -873,6 +873,19 @@ type HttpRequestAttributes = {
|
|
|
873
873
|
/** Zero-based attempt index: 0 = first request, 1 = first retry, etc. */
|
|
874
874
|
retryAttempt?: number;
|
|
875
875
|
renewAttempted?: boolean;
|
|
876
|
+
/**
|
|
877
|
+
* `false` opts a request out of `requestRetryMiddleware`. For exchanges
|
|
878
|
+
* that must never be replayed: a refresh token is single-use, so re-sending
|
|
879
|
+
* one whose first attempt reached the server presents a token that has
|
|
880
|
+
* already been rotated away.
|
|
881
|
+
*/
|
|
882
|
+
retryable?: boolean;
|
|
883
|
+
/**
|
|
884
|
+
* The user access token `attachSessionMiddleware` put on this request, so
|
|
885
|
+
* that a 401 can say *which* token was refused. Absent when the request
|
|
886
|
+
* went out with no user token.
|
|
887
|
+
*/
|
|
888
|
+
sentWith?: OAuthAccessToken;
|
|
876
889
|
clientCredentials?: ClientCredentialsOAuth;
|
|
877
890
|
};
|
|
878
891
|
|
|
@@ -1061,6 +1074,45 @@ interface Config {
|
|
|
1061
1074
|
* See {@link RpcConfig}.
|
|
1062
1075
|
*/
|
|
1063
1076
|
readonly rpc?: RpcConfig;
|
|
1077
|
+
/**
|
|
1078
|
+
* Called when the SDK has **confirmed** that the user's CoinList session is
|
|
1079
|
+
* gone - its refresh token expired or was revoked - so you can clear your
|
|
1080
|
+
* own state and show a sign-in entry point.
|
|
1081
|
+
*
|
|
1082
|
+
* Confirmed, because the backend answers "rotated a moment ago by a
|
|
1083
|
+
* concurrent request" and "dead" identically. A single rejection is only a
|
|
1084
|
+
* suspicion: the SDK acts on it only once the same session is rejected again
|
|
1085
|
+
* after a settle window, so a lost refresh race never signs a user out.
|
|
1086
|
+
*
|
|
1087
|
+
* Each environment reports what it confirmed itself, so it fires in the
|
|
1088
|
+
* one that drove the confirmation:
|
|
1089
|
+
*
|
|
1090
|
+
* - **`CoinListClient`**: fires when the SDK moves from `'logged-in'` to
|
|
1091
|
+
* `'logged-out'` because your `getAccessToken` answered `null` (or the
|
|
1092
|
+
* very token the API just refused) twice, a second apart.
|
|
1093
|
+
* - **`CoinListServer`**: fires when the same process sees a refresh token
|
|
1094
|
+
* rejected twice, 5 to 60 seconds apart, or an expired session that
|
|
1095
|
+
* carries no refresh token. The SDK clears the session from your
|
|
1096
|
+
* `SessionStore` just before. The browser's confirmation, through your
|
|
1097
|
+
* `getAccessToken` endpoint, comes a second after the first rejection, so
|
|
1098
|
+
* it does not reach this verdict: when the browser drives renewal, expect
|
|
1099
|
+
* the `CoinListClient` callback, and this one only if a later request
|
|
1100
|
+
* presents the dead session 5 to 60 seconds on.
|
|
1101
|
+
*
|
|
1102
|
+
* It never fires on `auth.logout()`, on a 5xx, a timeout or a network
|
|
1103
|
+
* failure - those mean the SDK could not find out, not that the session
|
|
1104
|
+
* ended. Per environment it fires at most once per session, within a
|
|
1105
|
+
* 60-second memory: the server remembers a verdict for 60 seconds per
|
|
1106
|
+
* process (per JavaScript module instance, so Next.js middleware and route
|
|
1107
|
+
* handlers count separately). The same dead session presented again after
|
|
1108
|
+
* that, or to another instance, can be reported again, so make your handler
|
|
1109
|
+
* idempotent.
|
|
1110
|
+
*
|
|
1111
|
+
* It is called on the next microtask and not awaited. A rejection is
|
|
1112
|
+
* logged and dropped, so it cannot fail or delay the request that
|
|
1113
|
+
* discovered the expiry. A synchronous handler is written `async () => {}`.
|
|
1114
|
+
*/
|
|
1115
|
+
readonly onSessionExpired?: () => Promise<void>;
|
|
1064
1116
|
}
|
|
1065
1117
|
|
|
1066
1118
|
/**
|
|
@@ -1215,13 +1267,13 @@ type InternalDebugEvent = {
|
|
|
1215
1267
|
* union makes a `switch` over it exhaustive: adding a provider without
|
|
1216
1268
|
* handling it becomes a compile error.
|
|
1217
1269
|
*/
|
|
1218
|
-
type OfferTypeDto = 'coinlist::token_sale' | 'superstate::swap' | 'ondo::swap';
|
|
1270
|
+
type OfferTypeDto = 'coinlist::token_sale' | 'superstate::swap' | 'ondo::swap' | 'centrifuge::vault';
|
|
1219
1271
|
/**
|
|
1220
1272
|
* One variant per {@link OfferTypeDto}, mirroring frontline#1365, which keys
|
|
1221
1273
|
* `GET /v1/offers` on `type`. Read `type` first: it decides which of the
|
|
1222
1274
|
* fields below mean anything.
|
|
1223
1275
|
*/
|
|
1224
|
-
type OfferDto = CoinListTokenSaleOfferDto | SuperstateSwapOfferDto | OndoSwapOfferDto;
|
|
1276
|
+
type OfferDto = CoinListTokenSaleOfferDto | SuperstateSwapOfferDto | OndoSwapOfferDto | CentrifugeVaultOfferDto;
|
|
1225
1277
|
type OfferBaseDto = {
|
|
1226
1278
|
id: string;
|
|
1227
1279
|
slug: string;
|
|
@@ -1238,15 +1290,16 @@ type OfferEditorialDto = {
|
|
|
1238
1290
|
starts_at: string;
|
|
1239
1291
|
};
|
|
1240
1292
|
/**
|
|
1241
|
-
* What an Ondo swap sends in place of
|
|
1242
|
-
*
|
|
1243
|
-
*
|
|
1244
|
-
* reads
|
|
1293
|
+
* What an Ondo swap or a Centrifuge vault sends in place of
|
|
1294
|
+
* {@link OfferEditorialDto}. Neither runs a campaign, so the keys arrive as
|
|
1295
|
+
* `null` and carry nothing, and the backend may stop sending them at all.
|
|
1296
|
+
* Declared so a fixture can describe the real payload; no `fromDto` reads
|
|
1297
|
+
* them.
|
|
1245
1298
|
*/
|
|
1246
1299
|
type OfferNoEditorialDto = {
|
|
1247
|
-
tagline
|
|
1248
|
-
banner_url
|
|
1249
|
-
starts_at
|
|
1300
|
+
tagline?: null;
|
|
1301
|
+
banner_url?: null;
|
|
1302
|
+
starts_at?: null;
|
|
1250
1303
|
};
|
|
1251
1304
|
type CoinListTokenSaleOfferDto = OfferBaseDto & OfferEditorialDto & {
|
|
1252
1305
|
type: 'coinlist::token_sale';
|
|
@@ -1262,8 +1315,17 @@ type OndoSwapOfferDto = OfferBaseDto & OfferNoEditorialDto & {
|
|
|
1262
1315
|
/** Publishing a swap does not require anyone to upload artwork for it. */
|
|
1263
1316
|
logo_url: string | null;
|
|
1264
1317
|
};
|
|
1318
|
+
type CentrifugeVaultOfferDto = OfferBaseDto & OfferNoEditorialDto & {
|
|
1319
|
+
type: 'centrifuge::vault';
|
|
1320
|
+
/** Publishing a vault does not require anyone to upload artwork for it. */
|
|
1321
|
+
logo_url: string | null;
|
|
1322
|
+
};
|
|
1265
1323
|
type OfferTokenDto = {
|
|
1266
|
-
|
|
1324
|
+
/**
|
|
1325
|
+
* `vault` is the share token a `centrifuge::vault` offer issues for
|
|
1326
|
+
* deposits, as `swap` is the token a swap offer trades into.
|
|
1327
|
+
*/
|
|
1328
|
+
role: 'funding' | 'distribution' | 'swap' | 'vault';
|
|
1267
1329
|
chain: string;
|
|
1268
1330
|
address: string;
|
|
1269
1331
|
};
|
|
@@ -1294,10 +1356,16 @@ type OndoSwapOffer = OfferBase & {
|
|
|
1294
1356
|
/** Null when nobody has uploaded artwork: a swap publishes without it. */
|
|
1295
1357
|
logoUrl: string | null;
|
|
1296
1358
|
};
|
|
1359
|
+
type CentrifugeVaultOffer = OfferBase & {
|
|
1360
|
+
type: 'centrifuge::vault';
|
|
1361
|
+
/** Null when nobody has uploaded artwork: a vault publishes without it. */
|
|
1362
|
+
logoUrl: string | null;
|
|
1363
|
+
};
|
|
1297
1364
|
/**
|
|
1298
1365
|
* A curated sale window and the hand-authored copy that goes with it. Every
|
|
1299
1366
|
* variant that runs such a campaign carries all three, validated; an Ondo swap
|
|
1300
|
-
* trades continuously
|
|
1367
|
+
* trades continuously and a Centrifuge vault takes deposits continuously, so
|
|
1368
|
+
* neither runs one and neither carries any.
|
|
1301
1369
|
*/
|
|
1302
1370
|
type OfferEditorial = {
|
|
1303
1371
|
tagline: string;
|
|
@@ -1317,7 +1385,7 @@ declare const OfferEditorial: {
|
|
|
1317
1385
|
* `type` before reading anything beyond {@link OfferBase} - an Ondo swap has
|
|
1318
1386
|
* no `startsAt` to read, and the compiler says so.
|
|
1319
1387
|
*/
|
|
1320
|
-
type Offer = CoinListTokenSaleOffer | SuperstateSwapOffer | OndoSwapOffer;
|
|
1388
|
+
type Offer = CoinListTokenSaleOffer | SuperstateSwapOffer | OndoSwapOffer | CentrifugeVaultOffer;
|
|
1321
1389
|
declare const Offer: {
|
|
1322
1390
|
fromDto: (dto: OfferDto) => Offer;
|
|
1323
1391
|
/**
|
|
@@ -1330,7 +1398,11 @@ declare const Offer: {
|
|
|
1330
1398
|
*/
|
|
1331
1399
|
listFromDto: (dtos: OfferDto[]) => Offer[];
|
|
1332
1400
|
};
|
|
1333
|
-
|
|
1401
|
+
/**
|
|
1402
|
+
* `vault` is the share token a `centrifuge::vault` offer issues for deposits,
|
|
1403
|
+
* as `swap` is the token a swap offer trades into.
|
|
1404
|
+
*/
|
|
1405
|
+
type TokenRole = 'funding' | 'distribution' | 'swap' | 'vault';
|
|
1334
1406
|
type OfferToken = {
|
|
1335
1407
|
role: TokenRole;
|
|
1336
1408
|
chain: Chain;
|
|
@@ -1445,16 +1517,16 @@ type CreateParticipationDto = {
|
|
|
1445
1517
|
* One variant per `OfferTypeDto`, the same split as `OfferDto` with what
|
|
1446
1518
|
* `GET /v1/offers/:id` adds on top. Read `type` first.
|
|
1447
1519
|
*/
|
|
1448
|
-
type OfferDetailDto = CoinListTokenSaleOfferDetailDto | SuperstateSwapOfferDetailDto | OndoSwapOfferDetailDto;
|
|
1449
|
-
type CoinListTokenSaleOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1520
|
+
type OfferDetailDto = CoinListTokenSaleOfferDetailDto | SuperstateSwapOfferDetailDto | OndoSwapOfferDetailDto | CentrifugeVaultOfferDetailDto;
|
|
1521
|
+
type CoinListTokenSaleOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & OfferDetailNoVaultContractsDto & {
|
|
1450
1522
|
type: 'coinlist::token_sale';
|
|
1451
1523
|
logo_url: string;
|
|
1452
1524
|
};
|
|
1453
|
-
type SuperstateSwapOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1525
|
+
type SuperstateSwapOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & OfferDetailNoVaultContractsDto & {
|
|
1454
1526
|
type: 'superstate::swap';
|
|
1455
1527
|
logo_url: string | null;
|
|
1456
1528
|
};
|
|
1457
|
-
type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & {
|
|
1529
|
+
type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & OfferDetailNoVaultContractsDto & {
|
|
1458
1530
|
type: 'ondo::swap';
|
|
1459
1531
|
logo_url: string | null;
|
|
1460
1532
|
/**
|
|
@@ -1463,6 +1535,19 @@ type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & {
|
|
|
1463
1535
|
*/
|
|
1464
1536
|
swap_contracts: OfferDetailSwapContractDto[];
|
|
1465
1537
|
};
|
|
1538
|
+
type CentrifugeVaultOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1539
|
+
type: 'centrifuge::vault';
|
|
1540
|
+
logo_url: string | null;
|
|
1541
|
+
/**
|
|
1542
|
+
* Every chain this vault takes deposits on, with the CoinList proxy each
|
|
1543
|
+
* request goes through. `[]` is an answer - "deposits nowhere", which is
|
|
1544
|
+
* every vault until a proxy is deployed - and a missing key is not.
|
|
1545
|
+
*/
|
|
1546
|
+
vault_contracts: OfferDetailVaultContractDto[];
|
|
1547
|
+
};
|
|
1548
|
+
type OfferDetailNoVaultContractsDto = {
|
|
1549
|
+
vault_contracts?: OfferDetailVaultContractDto[];
|
|
1550
|
+
};
|
|
1466
1551
|
/**
|
|
1467
1552
|
* An offer that does not settle through a CoinList swap contract sends `[]`
|
|
1468
1553
|
* or no key at all, and either way there is nothing to read. Declared so a
|
|
@@ -1529,6 +1614,10 @@ type OfferDetailSwapContractDto = {
|
|
|
1529
1614
|
chain: string;
|
|
1530
1615
|
address: string;
|
|
1531
1616
|
};
|
|
1617
|
+
type OfferDetailVaultContractDto = {
|
|
1618
|
+
chain: string;
|
|
1619
|
+
address: string;
|
|
1620
|
+
};
|
|
1532
1621
|
|
|
1533
1622
|
type Ticker = Newtype<string, 'Ticker'>;
|
|
1534
1623
|
declare const Ticker: (value: string) => Ticker;
|
|
@@ -1566,6 +1655,16 @@ type OndoSwapOfferDetail = OfferDetailBase & {
|
|
|
1566
1655
|
*/
|
|
1567
1656
|
swapContracts: OfferSwapContract[];
|
|
1568
1657
|
};
|
|
1658
|
+
type CentrifugeVaultOfferDetail = OfferDetailBase & {
|
|
1659
|
+
type: 'centrifuge::vault';
|
|
1660
|
+
/** Null when nobody has uploaded artwork: a vault publishes without it. */
|
|
1661
|
+
logoUrl: string | null;
|
|
1662
|
+
/**
|
|
1663
|
+
* Every chain this vault takes deposits on, with the CoinList proxy each
|
|
1664
|
+
* request goes through. Empty means it takes deposits nowhere yet.
|
|
1665
|
+
*/
|
|
1666
|
+
vaultContracts: OfferVaultContract[];
|
|
1667
|
+
};
|
|
1569
1668
|
type OfferDetailBase = {
|
|
1570
1669
|
id: OfferId;
|
|
1571
1670
|
slug: OfferSlug;
|
|
@@ -1643,13 +1742,38 @@ type OfferSwapContract = {
|
|
|
1643
1742
|
declare const OfferSwapContract: {
|
|
1644
1743
|
fromDto: (dto: OfferDetailSwapContractDto) => OfferSwapContract;
|
|
1645
1744
|
};
|
|
1745
|
+
/**
|
|
1746
|
+
* A chain a Centrifuge vault takes deposits on, with the CoinList proxy the
|
|
1747
|
+
* request goes through. Not a token, so the token registry knows nothing about
|
|
1748
|
+
* it: it is the spender the user approves the funding token to, and the `to`
|
|
1749
|
+
* the buy and claim transactions are sent to.
|
|
1750
|
+
*
|
|
1751
|
+
* Its own type rather than an {@link OfferSwapContract}, although the shape is
|
|
1752
|
+
* the same, because the meaning is not: a swap contract serves every Ondo
|
|
1753
|
+
* asset on its chain, while a proxy belongs to one offer on one chain, so the
|
|
1754
|
+
* same chain carries a different address on every vault.
|
|
1755
|
+
*/
|
|
1756
|
+
type OfferVaultContract = {
|
|
1757
|
+
chain: Chain;
|
|
1758
|
+
address: EvmContractAddress;
|
|
1759
|
+
};
|
|
1760
|
+
declare const OfferVaultContract: {
|
|
1761
|
+
fromDto: (dto: OfferDetailVaultContractDto) => OfferVaultContract;
|
|
1762
|
+
/**
|
|
1763
|
+
* Drops every proxy on a chain this SDK does not name, as
|
|
1764
|
+
* `OfferToken.listFromDto` does: frontline publishes the full offer-token
|
|
1765
|
+
* chain list, which runs ahead of {@link Chain}, and one unmodelled chain
|
|
1766
|
+
* should not throw away the proxies the SDK can use.
|
|
1767
|
+
*/
|
|
1768
|
+
listFromDto: (dtos: OfferDetailVaultContractDto[]) => OfferVaultContract[];
|
|
1769
|
+
};
|
|
1646
1770
|
/**
|
|
1647
1771
|
* An offer as `GET /v1/offers/:id` serves it: the same union on `type` as
|
|
1648
1772
|
* {@link Offer}, each variant carrying only the fields that mean something
|
|
1649
1773
|
* for it. Narrow on `type` before reading anything beyond
|
|
1650
1774
|
* {@link OfferDetailBase}.
|
|
1651
1775
|
*/
|
|
1652
|
-
type OfferDetail = CoinListTokenSaleOfferDetail | SuperstateSwapOfferDetail | OndoSwapOfferDetail;
|
|
1776
|
+
type OfferDetail = CoinListTokenSaleOfferDetail | SuperstateSwapOfferDetail | OndoSwapOfferDetail | CentrifugeVaultOfferDetail;
|
|
1653
1777
|
declare const OfferDetail: {
|
|
1654
1778
|
fromDto: (dto: OfferDetailDto) => OfferDetail;
|
|
1655
1779
|
};
|
|
@@ -2436,6 +2560,17 @@ declare const OndoSellTransaction: {
|
|
|
2436
2560
|
*/
|
|
2437
2561
|
interface OndoNamespace {
|
|
2438
2562
|
getTradingStatus(params: GetOndoTradingStatusParams): Promise<OndoTradingStatus>;
|
|
2563
|
+
/**
|
|
2564
|
+
* An indicative price for `params`' size, from Ondo's live market.
|
|
2565
|
+
*
|
|
2566
|
+
* Ondo refuses to quote while the market is closed or paused, or the asset
|
|
2567
|
+
* is paused or closed for the session - including for about a minute at
|
|
2568
|
+
* every US session change, when `getTradingStatus` may still have reported
|
|
2569
|
+
* the asset tradable. The request then rejects with a 409 carrying
|
|
2570
|
+
* `code: "not_tradable"`; tell it apart from a failure with
|
|
2571
|
+
* {@link isOndoNotTradableError}. Retrying before the market opens fails the
|
|
2572
|
+
* same way.
|
|
2573
|
+
*/
|
|
2439
2574
|
getQuote(params: GetOndoQuoteParams): Promise<OndoQuote>;
|
|
2440
2575
|
/**
|
|
2441
2576
|
* Builds a purchase for a specific wallet and deposit: spends an attestation
|
|
@@ -3298,4 +3433,4 @@ declare class TokensNamespaceImpl implements TokensNamespace {
|
|
|
3298
3433
|
list(chain?: EthereumChain): Promise<TokenMetadata[]>;
|
|
3299
3434
|
}
|
|
3300
3435
|
|
|
3301
|
-
export {
|
|
3436
|
+
export { type PinoLoggerOptions as $, AuthorizationCode as A, BlockchainAmount as B, CodeVerifier as C, TokenMetadata as D, type Erc20Namespace as E, type CentrifugeVaultOfferDetail as F, type OfferType as G, type OndoSwapOfferDetail as H, type CoinListTokenSaleOfferDetail as I, type SuperstateSwapOfferDetail as J, Offer as K, type Logger as L, RequirementStatusInfo as M, type RequirementType as N, OfferId as O, Participation as P, type RequirementStatusValue as Q, type RequirementsNamespace as R, type SuperstateSwapNamespace as S, type TokensNamespace as T, type UniversalNamespaceContext as U, OfferOptionAddress as V, type WalletError as W, RequirementId as X, type KycLevelName as Y, DocumentSubmission as Z, type WalletChallengeType as _, EthereumChain as a, type GetSwapAuthorizationParams as a$, OndoTradingStatus as a0, AssetDecimals as a1, type BuildOndoBuyParams as a2, type BuildOndoSellParams as a3, OndoQuote as a4, type OndoQuoteSize as a5, type TokenIdentifier as a6, OfferOptionAddressId as a7, TokenLogo as a8, type DebugEvent as a9, KnownAssetSymbol as aA, type Tx as aB, type Newtype as aC, type AllowWalletParams as aD, AllowWalletResponse as aE, Asset as aF, AssetCode as aG, Blockchain as aH, type BuildOndoSwapParamsCore as aI, type CentrifugeVaultOffer as aJ, Chain as aK, ClientId as aL, CodeChallenge as aM, type CoinListTokenSaleOffer as aN, ConnectExternalWalletParams as aO, type CreateKycTokenParams as aP, CreateParticipationParams as aQ, CreateWalletOwnershipChallengeParams as aR, Cursor as aS, type DocumentFormType as aT, type DocumentSubmissionStatus as aU, type DocumentType as aV, ETHEREUM_CHAINS as aW, Erc20NamespaceImpl as aX, FaqItem as aY, type GetOndoQuoteParams as aZ, type GetOndoTradingStatusParams as a_, type FrontlineEventId as aa, HttpError as ab, type HttpResponse as ac, KycToken as ad, type LogBinding as ae, type LogBindings as af, type LogCause as ag, type LogLevel as ah, type LogScope as ai, type LogValue as aj, type ProductionLogLevel as ak, RedactedWalletError as al, type RequestId as am, type RpcFailureReason as an, type SafeEvent as ao, type SafeFields as ap, type UnredactedFields as aq, OAuthSession as ar, ClientCredentialsOAuth as as, type Sender as at, PaginationParams as au, PaginatedResponse as av, ClientSecret as aw, DecimalString as ax, SwapStatus as ay, type Uint256 as az, EvmContractAddress as b, type GetSwapPreviewParams as b0, type GetTokenAllowanceParams as b1, type GetTokenBalanceParams as b2, HexEncodedTransactionData as b3, Isin as b4, Iso2CountryCode as b5, Link as b6, type ListOptionAddressesParams as b7, MAX_ASSET_DECIMALS as b8, MAX_UINT_256 as b9, RedirectUri as bA, type RemoveOptionAddressParams as bB, type RequirementActionNeededReason as bC, type RpcConfig as bD, SOLANA_CHAINS as bE, STABLE_DECIMALS as bF, SolanaChain as bG, type SubmitDocumentParams as bH, type SuperstateSwapOffer as bI, type SwapContractRef as bJ, SwapPreview as bK, TermItem as bL, Ticker as bM, type TokenLogoImage as bN, TokenLogoUrl as bO, type TokenRole as bP, TokensNamespaceImpl as bQ, WalletAddress as bR, WalletOwnershipChallenge as bS, type WalletProtocol as bT, WalletsNamespaceImpl as bU, apiErrorCode as bV, assertUint256 as bW, isChain as bX, isOfferType as bY, parseUint256 as bZ, Milestone as ba, OAuthRefreshToken as bb, type OfferBase as bc, type OfferDetailBase as bd, OfferEditorial as be, OfferOption as bf, OfferOptionSlug as bg, OfferSlug as bh, OfferToken as bi, OfferVaultContract as bj, OffersNamespaceImpl as bk, type OndoQuoteDuration as bl, type OndoSellOutcome as bm, type OndoSwapOffer as bn, PKCEState as bo, type PaginatedResponseDto as bp, ParticipationId as bq, type ParticipationStatus as br, ParticipationsPaginationParams as bs, PauseFlags as bt, Pii as bu, PiiAddress as bv, PiiJurisdiction as bw, type PiiKind as bx, type QueryParamValue as by, type QueryParamValues as bz, type CoinListTokenSaleNamespace as c, OfferOptionId as d, AssetId as e, CoinListTokenSaleNamespaceImpl as f, type OndoNamespace as g, AssetSymbol as h, OfferSwapContract as i, OndoBuyTransaction as j, OndoSellTransaction as k, type OndoSwapTransactionCore as l, type OrderBookSide as m, OndoNamespaceImpl as n, type WalletsNamespace as o, Bps as p, EvmWalletAddress as q, SuperstateSwapNamespaceImpl as r, Requirement as s, RequirementsNamespaceImpl as t, type Config as u, type OAuthAccessToken as v, type OffersNamespace as w, StablecoinSymbol as x, type Erc20Asset as y, OfferDetail as z };
|
|
@@ -873,6 +873,19 @@ type HttpRequestAttributes = {
|
|
|
873
873
|
/** Zero-based attempt index: 0 = first request, 1 = first retry, etc. */
|
|
874
874
|
retryAttempt?: number;
|
|
875
875
|
renewAttempted?: boolean;
|
|
876
|
+
/**
|
|
877
|
+
* `false` opts a request out of `requestRetryMiddleware`. For exchanges
|
|
878
|
+
* that must never be replayed: a refresh token is single-use, so re-sending
|
|
879
|
+
* one whose first attempt reached the server presents a token that has
|
|
880
|
+
* already been rotated away.
|
|
881
|
+
*/
|
|
882
|
+
retryable?: boolean;
|
|
883
|
+
/**
|
|
884
|
+
* The user access token `attachSessionMiddleware` put on this request, so
|
|
885
|
+
* that a 401 can say *which* token was refused. Absent when the request
|
|
886
|
+
* went out with no user token.
|
|
887
|
+
*/
|
|
888
|
+
sentWith?: OAuthAccessToken;
|
|
876
889
|
clientCredentials?: ClientCredentialsOAuth;
|
|
877
890
|
};
|
|
878
891
|
|
|
@@ -1061,6 +1074,45 @@ interface Config {
|
|
|
1061
1074
|
* See {@link RpcConfig}.
|
|
1062
1075
|
*/
|
|
1063
1076
|
readonly rpc?: RpcConfig;
|
|
1077
|
+
/**
|
|
1078
|
+
* Called when the SDK has **confirmed** that the user's CoinList session is
|
|
1079
|
+
* gone - its refresh token expired or was revoked - so you can clear your
|
|
1080
|
+
* own state and show a sign-in entry point.
|
|
1081
|
+
*
|
|
1082
|
+
* Confirmed, because the backend answers "rotated a moment ago by a
|
|
1083
|
+
* concurrent request" and "dead" identically. A single rejection is only a
|
|
1084
|
+
* suspicion: the SDK acts on it only once the same session is rejected again
|
|
1085
|
+
* after a settle window, so a lost refresh race never signs a user out.
|
|
1086
|
+
*
|
|
1087
|
+
* Each environment reports what it confirmed itself, so it fires in the
|
|
1088
|
+
* one that drove the confirmation:
|
|
1089
|
+
*
|
|
1090
|
+
* - **`CoinListClient`**: fires when the SDK moves from `'logged-in'` to
|
|
1091
|
+
* `'logged-out'` because your `getAccessToken` answered `null` (or the
|
|
1092
|
+
* very token the API just refused) twice, a second apart.
|
|
1093
|
+
* - **`CoinListServer`**: fires when the same process sees a refresh token
|
|
1094
|
+
* rejected twice, 5 to 60 seconds apart, or an expired session that
|
|
1095
|
+
* carries no refresh token. The SDK clears the session from your
|
|
1096
|
+
* `SessionStore` just before. The browser's confirmation, through your
|
|
1097
|
+
* `getAccessToken` endpoint, comes a second after the first rejection, so
|
|
1098
|
+
* it does not reach this verdict: when the browser drives renewal, expect
|
|
1099
|
+
* the `CoinListClient` callback, and this one only if a later request
|
|
1100
|
+
* presents the dead session 5 to 60 seconds on.
|
|
1101
|
+
*
|
|
1102
|
+
* It never fires on `auth.logout()`, on a 5xx, a timeout or a network
|
|
1103
|
+
* failure - those mean the SDK could not find out, not that the session
|
|
1104
|
+
* ended. Per environment it fires at most once per session, within a
|
|
1105
|
+
* 60-second memory: the server remembers a verdict for 60 seconds per
|
|
1106
|
+
* process (per JavaScript module instance, so Next.js middleware and route
|
|
1107
|
+
* handlers count separately). The same dead session presented again after
|
|
1108
|
+
* that, or to another instance, can be reported again, so make your handler
|
|
1109
|
+
* idempotent.
|
|
1110
|
+
*
|
|
1111
|
+
* It is called on the next microtask and not awaited. A rejection is
|
|
1112
|
+
* logged and dropped, so it cannot fail or delay the request that
|
|
1113
|
+
* discovered the expiry. A synchronous handler is written `async () => {}`.
|
|
1114
|
+
*/
|
|
1115
|
+
readonly onSessionExpired?: () => Promise<void>;
|
|
1064
1116
|
}
|
|
1065
1117
|
|
|
1066
1118
|
/**
|
|
@@ -1215,13 +1267,13 @@ type InternalDebugEvent = {
|
|
|
1215
1267
|
* union makes a `switch` over it exhaustive: adding a provider without
|
|
1216
1268
|
* handling it becomes a compile error.
|
|
1217
1269
|
*/
|
|
1218
|
-
type OfferTypeDto = 'coinlist::token_sale' | 'superstate::swap' | 'ondo::swap';
|
|
1270
|
+
type OfferTypeDto = 'coinlist::token_sale' | 'superstate::swap' | 'ondo::swap' | 'centrifuge::vault';
|
|
1219
1271
|
/**
|
|
1220
1272
|
* One variant per {@link OfferTypeDto}, mirroring frontline#1365, which keys
|
|
1221
1273
|
* `GET /v1/offers` on `type`. Read `type` first: it decides which of the
|
|
1222
1274
|
* fields below mean anything.
|
|
1223
1275
|
*/
|
|
1224
|
-
type OfferDto = CoinListTokenSaleOfferDto | SuperstateSwapOfferDto | OndoSwapOfferDto;
|
|
1276
|
+
type OfferDto = CoinListTokenSaleOfferDto | SuperstateSwapOfferDto | OndoSwapOfferDto | CentrifugeVaultOfferDto;
|
|
1225
1277
|
type OfferBaseDto = {
|
|
1226
1278
|
id: string;
|
|
1227
1279
|
slug: string;
|
|
@@ -1238,15 +1290,16 @@ type OfferEditorialDto = {
|
|
|
1238
1290
|
starts_at: string;
|
|
1239
1291
|
};
|
|
1240
1292
|
/**
|
|
1241
|
-
* What an Ondo swap sends in place of
|
|
1242
|
-
*
|
|
1243
|
-
*
|
|
1244
|
-
* reads
|
|
1293
|
+
* What an Ondo swap or a Centrifuge vault sends in place of
|
|
1294
|
+
* {@link OfferEditorialDto}. Neither runs a campaign, so the keys arrive as
|
|
1295
|
+
* `null` and carry nothing, and the backend may stop sending them at all.
|
|
1296
|
+
* Declared so a fixture can describe the real payload; no `fromDto` reads
|
|
1297
|
+
* them.
|
|
1245
1298
|
*/
|
|
1246
1299
|
type OfferNoEditorialDto = {
|
|
1247
|
-
tagline
|
|
1248
|
-
banner_url
|
|
1249
|
-
starts_at
|
|
1300
|
+
tagline?: null;
|
|
1301
|
+
banner_url?: null;
|
|
1302
|
+
starts_at?: null;
|
|
1250
1303
|
};
|
|
1251
1304
|
type CoinListTokenSaleOfferDto = OfferBaseDto & OfferEditorialDto & {
|
|
1252
1305
|
type: 'coinlist::token_sale';
|
|
@@ -1262,8 +1315,17 @@ type OndoSwapOfferDto = OfferBaseDto & OfferNoEditorialDto & {
|
|
|
1262
1315
|
/** Publishing a swap does not require anyone to upload artwork for it. */
|
|
1263
1316
|
logo_url: string | null;
|
|
1264
1317
|
};
|
|
1318
|
+
type CentrifugeVaultOfferDto = OfferBaseDto & OfferNoEditorialDto & {
|
|
1319
|
+
type: 'centrifuge::vault';
|
|
1320
|
+
/** Publishing a vault does not require anyone to upload artwork for it. */
|
|
1321
|
+
logo_url: string | null;
|
|
1322
|
+
};
|
|
1265
1323
|
type OfferTokenDto = {
|
|
1266
|
-
|
|
1324
|
+
/**
|
|
1325
|
+
* `vault` is the share token a `centrifuge::vault` offer issues for
|
|
1326
|
+
* deposits, as `swap` is the token a swap offer trades into.
|
|
1327
|
+
*/
|
|
1328
|
+
role: 'funding' | 'distribution' | 'swap' | 'vault';
|
|
1267
1329
|
chain: string;
|
|
1268
1330
|
address: string;
|
|
1269
1331
|
};
|
|
@@ -1294,10 +1356,16 @@ type OndoSwapOffer = OfferBase & {
|
|
|
1294
1356
|
/** Null when nobody has uploaded artwork: a swap publishes without it. */
|
|
1295
1357
|
logoUrl: string | null;
|
|
1296
1358
|
};
|
|
1359
|
+
type CentrifugeVaultOffer = OfferBase & {
|
|
1360
|
+
type: 'centrifuge::vault';
|
|
1361
|
+
/** Null when nobody has uploaded artwork: a vault publishes without it. */
|
|
1362
|
+
logoUrl: string | null;
|
|
1363
|
+
};
|
|
1297
1364
|
/**
|
|
1298
1365
|
* A curated sale window and the hand-authored copy that goes with it. Every
|
|
1299
1366
|
* variant that runs such a campaign carries all three, validated; an Ondo swap
|
|
1300
|
-
* trades continuously
|
|
1367
|
+
* trades continuously and a Centrifuge vault takes deposits continuously, so
|
|
1368
|
+
* neither runs one and neither carries any.
|
|
1301
1369
|
*/
|
|
1302
1370
|
type OfferEditorial = {
|
|
1303
1371
|
tagline: string;
|
|
@@ -1317,7 +1385,7 @@ declare const OfferEditorial: {
|
|
|
1317
1385
|
* `type` before reading anything beyond {@link OfferBase} - an Ondo swap has
|
|
1318
1386
|
* no `startsAt` to read, and the compiler says so.
|
|
1319
1387
|
*/
|
|
1320
|
-
type Offer = CoinListTokenSaleOffer | SuperstateSwapOffer | OndoSwapOffer;
|
|
1388
|
+
type Offer = CoinListTokenSaleOffer | SuperstateSwapOffer | OndoSwapOffer | CentrifugeVaultOffer;
|
|
1321
1389
|
declare const Offer: {
|
|
1322
1390
|
fromDto: (dto: OfferDto) => Offer;
|
|
1323
1391
|
/**
|
|
@@ -1330,7 +1398,11 @@ declare const Offer: {
|
|
|
1330
1398
|
*/
|
|
1331
1399
|
listFromDto: (dtos: OfferDto[]) => Offer[];
|
|
1332
1400
|
};
|
|
1333
|
-
|
|
1401
|
+
/**
|
|
1402
|
+
* `vault` is the share token a `centrifuge::vault` offer issues for deposits,
|
|
1403
|
+
* as `swap` is the token a swap offer trades into.
|
|
1404
|
+
*/
|
|
1405
|
+
type TokenRole = 'funding' | 'distribution' | 'swap' | 'vault';
|
|
1334
1406
|
type OfferToken = {
|
|
1335
1407
|
role: TokenRole;
|
|
1336
1408
|
chain: Chain;
|
|
@@ -1445,16 +1517,16 @@ type CreateParticipationDto = {
|
|
|
1445
1517
|
* One variant per `OfferTypeDto`, the same split as `OfferDto` with what
|
|
1446
1518
|
* `GET /v1/offers/:id` adds on top. Read `type` first.
|
|
1447
1519
|
*/
|
|
1448
|
-
type OfferDetailDto = CoinListTokenSaleOfferDetailDto | SuperstateSwapOfferDetailDto | OndoSwapOfferDetailDto;
|
|
1449
|
-
type CoinListTokenSaleOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1520
|
+
type OfferDetailDto = CoinListTokenSaleOfferDetailDto | SuperstateSwapOfferDetailDto | OndoSwapOfferDetailDto | CentrifugeVaultOfferDetailDto;
|
|
1521
|
+
type CoinListTokenSaleOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & OfferDetailNoVaultContractsDto & {
|
|
1450
1522
|
type: 'coinlist::token_sale';
|
|
1451
1523
|
logo_url: string;
|
|
1452
1524
|
};
|
|
1453
|
-
type SuperstateSwapOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1525
|
+
type SuperstateSwapOfferDetailDto = OfferDetailBaseDto & OfferEditorialDto & OfferDetailNoSwapContractsDto & OfferDetailNoVaultContractsDto & {
|
|
1454
1526
|
type: 'superstate::swap';
|
|
1455
1527
|
logo_url: string | null;
|
|
1456
1528
|
};
|
|
1457
|
-
type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & {
|
|
1529
|
+
type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & OfferDetailNoVaultContractsDto & {
|
|
1458
1530
|
type: 'ondo::swap';
|
|
1459
1531
|
logo_url: string | null;
|
|
1460
1532
|
/**
|
|
@@ -1463,6 +1535,19 @@ type OndoSwapOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & {
|
|
|
1463
1535
|
*/
|
|
1464
1536
|
swap_contracts: OfferDetailSwapContractDto[];
|
|
1465
1537
|
};
|
|
1538
|
+
type CentrifugeVaultOfferDetailDto = OfferDetailBaseDto & OfferNoEditorialDto & OfferDetailNoSwapContractsDto & {
|
|
1539
|
+
type: 'centrifuge::vault';
|
|
1540
|
+
logo_url: string | null;
|
|
1541
|
+
/**
|
|
1542
|
+
* Every chain this vault takes deposits on, with the CoinList proxy each
|
|
1543
|
+
* request goes through. `[]` is an answer - "deposits nowhere", which is
|
|
1544
|
+
* every vault until a proxy is deployed - and a missing key is not.
|
|
1545
|
+
*/
|
|
1546
|
+
vault_contracts: OfferDetailVaultContractDto[];
|
|
1547
|
+
};
|
|
1548
|
+
type OfferDetailNoVaultContractsDto = {
|
|
1549
|
+
vault_contracts?: OfferDetailVaultContractDto[];
|
|
1550
|
+
};
|
|
1466
1551
|
/**
|
|
1467
1552
|
* An offer that does not settle through a CoinList swap contract sends `[]`
|
|
1468
1553
|
* or no key at all, and either way there is nothing to read. Declared so a
|
|
@@ -1529,6 +1614,10 @@ type OfferDetailSwapContractDto = {
|
|
|
1529
1614
|
chain: string;
|
|
1530
1615
|
address: string;
|
|
1531
1616
|
};
|
|
1617
|
+
type OfferDetailVaultContractDto = {
|
|
1618
|
+
chain: string;
|
|
1619
|
+
address: string;
|
|
1620
|
+
};
|
|
1532
1621
|
|
|
1533
1622
|
type Ticker = Newtype<string, 'Ticker'>;
|
|
1534
1623
|
declare const Ticker: (value: string) => Ticker;
|
|
@@ -1566,6 +1655,16 @@ type OndoSwapOfferDetail = OfferDetailBase & {
|
|
|
1566
1655
|
*/
|
|
1567
1656
|
swapContracts: OfferSwapContract[];
|
|
1568
1657
|
};
|
|
1658
|
+
type CentrifugeVaultOfferDetail = OfferDetailBase & {
|
|
1659
|
+
type: 'centrifuge::vault';
|
|
1660
|
+
/** Null when nobody has uploaded artwork: a vault publishes without it. */
|
|
1661
|
+
logoUrl: string | null;
|
|
1662
|
+
/**
|
|
1663
|
+
* Every chain this vault takes deposits on, with the CoinList proxy each
|
|
1664
|
+
* request goes through. Empty means it takes deposits nowhere yet.
|
|
1665
|
+
*/
|
|
1666
|
+
vaultContracts: OfferVaultContract[];
|
|
1667
|
+
};
|
|
1569
1668
|
type OfferDetailBase = {
|
|
1570
1669
|
id: OfferId;
|
|
1571
1670
|
slug: OfferSlug;
|
|
@@ -1643,13 +1742,38 @@ type OfferSwapContract = {
|
|
|
1643
1742
|
declare const OfferSwapContract: {
|
|
1644
1743
|
fromDto: (dto: OfferDetailSwapContractDto) => OfferSwapContract;
|
|
1645
1744
|
};
|
|
1745
|
+
/**
|
|
1746
|
+
* A chain a Centrifuge vault takes deposits on, with the CoinList proxy the
|
|
1747
|
+
* request goes through. Not a token, so the token registry knows nothing about
|
|
1748
|
+
* it: it is the spender the user approves the funding token to, and the `to`
|
|
1749
|
+
* the buy and claim transactions are sent to.
|
|
1750
|
+
*
|
|
1751
|
+
* Its own type rather than an {@link OfferSwapContract}, although the shape is
|
|
1752
|
+
* the same, because the meaning is not: a swap contract serves every Ondo
|
|
1753
|
+
* asset on its chain, while a proxy belongs to one offer on one chain, so the
|
|
1754
|
+
* same chain carries a different address on every vault.
|
|
1755
|
+
*/
|
|
1756
|
+
type OfferVaultContract = {
|
|
1757
|
+
chain: Chain;
|
|
1758
|
+
address: EvmContractAddress;
|
|
1759
|
+
};
|
|
1760
|
+
declare const OfferVaultContract: {
|
|
1761
|
+
fromDto: (dto: OfferDetailVaultContractDto) => OfferVaultContract;
|
|
1762
|
+
/**
|
|
1763
|
+
* Drops every proxy on a chain this SDK does not name, as
|
|
1764
|
+
* `OfferToken.listFromDto` does: frontline publishes the full offer-token
|
|
1765
|
+
* chain list, which runs ahead of {@link Chain}, and one unmodelled chain
|
|
1766
|
+
* should not throw away the proxies the SDK can use.
|
|
1767
|
+
*/
|
|
1768
|
+
listFromDto: (dtos: OfferDetailVaultContractDto[]) => OfferVaultContract[];
|
|
1769
|
+
};
|
|
1646
1770
|
/**
|
|
1647
1771
|
* An offer as `GET /v1/offers/:id` serves it: the same union on `type` as
|
|
1648
1772
|
* {@link Offer}, each variant carrying only the fields that mean something
|
|
1649
1773
|
* for it. Narrow on `type` before reading anything beyond
|
|
1650
1774
|
* {@link OfferDetailBase}.
|
|
1651
1775
|
*/
|
|
1652
|
-
type OfferDetail = CoinListTokenSaleOfferDetail | SuperstateSwapOfferDetail | OndoSwapOfferDetail;
|
|
1776
|
+
type OfferDetail = CoinListTokenSaleOfferDetail | SuperstateSwapOfferDetail | OndoSwapOfferDetail | CentrifugeVaultOfferDetail;
|
|
1653
1777
|
declare const OfferDetail: {
|
|
1654
1778
|
fromDto: (dto: OfferDetailDto) => OfferDetail;
|
|
1655
1779
|
};
|
|
@@ -2436,6 +2560,17 @@ declare const OndoSellTransaction: {
|
|
|
2436
2560
|
*/
|
|
2437
2561
|
interface OndoNamespace {
|
|
2438
2562
|
getTradingStatus(params: GetOndoTradingStatusParams): Promise<OndoTradingStatus>;
|
|
2563
|
+
/**
|
|
2564
|
+
* An indicative price for `params`' size, from Ondo's live market.
|
|
2565
|
+
*
|
|
2566
|
+
* Ondo refuses to quote while the market is closed or paused, or the asset
|
|
2567
|
+
* is paused or closed for the session - including for about a minute at
|
|
2568
|
+
* every US session change, when `getTradingStatus` may still have reported
|
|
2569
|
+
* the asset tradable. The request then rejects with a 409 carrying
|
|
2570
|
+
* `code: "not_tradable"`; tell it apart from a failure with
|
|
2571
|
+
* {@link isOndoNotTradableError}. Retrying before the market opens fails the
|
|
2572
|
+
* same way.
|
|
2573
|
+
*/
|
|
2439
2574
|
getQuote(params: GetOndoQuoteParams): Promise<OndoQuote>;
|
|
2440
2575
|
/**
|
|
2441
2576
|
* Builds a purchase for a specific wallet and deposit: spends an attestation
|
|
@@ -3298,4 +3433,4 @@ declare class TokensNamespaceImpl implements TokensNamespace {
|
|
|
3298
3433
|
list(chain?: EthereumChain): Promise<TokenMetadata[]>;
|
|
3299
3434
|
}
|
|
3300
3435
|
|
|
3301
|
-
export {
|
|
3436
|
+
export { type PinoLoggerOptions as $, AuthorizationCode as A, BlockchainAmount as B, CodeVerifier as C, TokenMetadata as D, type Erc20Namespace as E, type CentrifugeVaultOfferDetail as F, type OfferType as G, type OndoSwapOfferDetail as H, type CoinListTokenSaleOfferDetail as I, type SuperstateSwapOfferDetail as J, Offer as K, type Logger as L, RequirementStatusInfo as M, type RequirementType as N, OfferId as O, Participation as P, type RequirementStatusValue as Q, type RequirementsNamespace as R, type SuperstateSwapNamespace as S, type TokensNamespace as T, type UniversalNamespaceContext as U, OfferOptionAddress as V, type WalletError as W, RequirementId as X, type KycLevelName as Y, DocumentSubmission as Z, type WalletChallengeType as _, EthereumChain as a, type GetSwapAuthorizationParams as a$, OndoTradingStatus as a0, AssetDecimals as a1, type BuildOndoBuyParams as a2, type BuildOndoSellParams as a3, OndoQuote as a4, type OndoQuoteSize as a5, type TokenIdentifier as a6, OfferOptionAddressId as a7, TokenLogo as a8, type DebugEvent as a9, KnownAssetSymbol as aA, type Tx as aB, type Newtype as aC, type AllowWalletParams as aD, AllowWalletResponse as aE, Asset as aF, AssetCode as aG, Blockchain as aH, type BuildOndoSwapParamsCore as aI, type CentrifugeVaultOffer as aJ, Chain as aK, ClientId as aL, CodeChallenge as aM, type CoinListTokenSaleOffer as aN, ConnectExternalWalletParams as aO, type CreateKycTokenParams as aP, CreateParticipationParams as aQ, CreateWalletOwnershipChallengeParams as aR, Cursor as aS, type DocumentFormType as aT, type DocumentSubmissionStatus as aU, type DocumentType as aV, ETHEREUM_CHAINS as aW, Erc20NamespaceImpl as aX, FaqItem as aY, type GetOndoQuoteParams as aZ, type GetOndoTradingStatusParams as a_, type FrontlineEventId as aa, HttpError as ab, type HttpResponse as ac, KycToken as ad, type LogBinding as ae, type LogBindings as af, type LogCause as ag, type LogLevel as ah, type LogScope as ai, type LogValue as aj, type ProductionLogLevel as ak, RedactedWalletError as al, type RequestId as am, type RpcFailureReason as an, type SafeEvent as ao, type SafeFields as ap, type UnredactedFields as aq, OAuthSession as ar, ClientCredentialsOAuth as as, type Sender as at, PaginationParams as au, PaginatedResponse as av, ClientSecret as aw, DecimalString as ax, SwapStatus as ay, type Uint256 as az, EvmContractAddress as b, type GetSwapPreviewParams as b0, type GetTokenAllowanceParams as b1, type GetTokenBalanceParams as b2, HexEncodedTransactionData as b3, Isin as b4, Iso2CountryCode as b5, Link as b6, type ListOptionAddressesParams as b7, MAX_ASSET_DECIMALS as b8, MAX_UINT_256 as b9, RedirectUri as bA, type RemoveOptionAddressParams as bB, type RequirementActionNeededReason as bC, type RpcConfig as bD, SOLANA_CHAINS as bE, STABLE_DECIMALS as bF, SolanaChain as bG, type SubmitDocumentParams as bH, type SuperstateSwapOffer as bI, type SwapContractRef as bJ, SwapPreview as bK, TermItem as bL, Ticker as bM, type TokenLogoImage as bN, TokenLogoUrl as bO, type TokenRole as bP, TokensNamespaceImpl as bQ, WalletAddress as bR, WalletOwnershipChallenge as bS, type WalletProtocol as bT, WalletsNamespaceImpl as bU, apiErrorCode as bV, assertUint256 as bW, isChain as bX, isOfferType as bY, parseUint256 as bZ, Milestone as ba, OAuthRefreshToken as bb, type OfferBase as bc, type OfferDetailBase as bd, OfferEditorial as be, OfferOption as bf, OfferOptionSlug as bg, OfferSlug as bh, OfferToken as bi, OfferVaultContract as bj, OffersNamespaceImpl as bk, type OndoQuoteDuration as bl, type OndoSellOutcome as bm, type OndoSwapOffer as bn, PKCEState as bo, type PaginatedResponseDto as bp, ParticipationId as bq, type ParticipationStatus as br, ParticipationsPaginationParams as bs, PauseFlags as bt, Pii as bu, PiiAddress as bv, PiiJurisdiction as bw, type PiiKind as bx, type QueryParamValue as by, type QueryParamValues as bz, type CoinListTokenSaleNamespace as c, OfferOptionId as d, AssetId as e, CoinListTokenSaleNamespaceImpl as f, type OndoNamespace as g, AssetSymbol as h, OfferSwapContract as i, OndoBuyTransaction as j, OndoSellTransaction as k, type OndoSwapTransactionCore as l, type OrderBookSide as m, OndoNamespaceImpl as n, type WalletsNamespace as o, Bps as p, EvmWalletAddress as q, SuperstateSwapNamespaceImpl as r, Requirement as s, RequirementsNamespaceImpl as t, type Config as u, type OAuthAccessToken as v, type OffersNamespace as w, StablecoinSymbol as x, type Erc20Asset as y, OfferDetail as z };
|