@kasufinance/kasu-sdk 2.12.0 → 2.13.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.
Files changed (53) hide show
  1. package/README.md +26 -1
  2. package/dist/bundle.cjs.js +871 -41
  3. package/dist/bundle.esm.js +868 -43
  4. package/dist/domain/index.d.ts +2 -0
  5. package/dist/domain/index.js +1 -0
  6. package/dist/domain/index.js.map +1 -1
  7. package/dist/domain/pool-tvl.d.ts +62 -0
  8. package/dist/domain/pool-tvl.js +22 -0
  9. package/dist/domain/pool-tvl.js.map +1 -0
  10. package/dist/facade/chain-configs.js +24 -0
  11. package/dist/facade/chain-configs.js.map +1 -1
  12. package/dist/facade/kasu.d.ts +2 -0
  13. package/dist/facade/kasu.js +13 -5
  14. package/dist/facade/kasu.js.map +1 -1
  15. package/dist/facade/strategies.d.ts +20 -0
  16. package/dist/facade/strategies.js +22 -0
  17. package/dist/facade/strategies.js.map +1 -1
  18. package/dist/facade/types.d.ts +20 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/kasu-sdk.d.ts +9 -1
  23. package/dist/kasu-sdk.js +2 -2
  24. package/dist/kasu-sdk.js.map +1 -1
  25. package/dist/sdk-config.d.ts +20 -0
  26. package/dist/sdk-config.js +3 -1
  27. package/dist/sdk-config.js.map +1 -1
  28. package/dist/services/DataService/data-service.d.ts +81 -1
  29. package/dist/services/DataService/data-service.js +211 -6
  30. package/dist/services/DataService/data-service.js.map +1 -1
  31. package/dist/services/DataService/tvl-history.d.ts +296 -0
  32. package/dist/services/DataService/tvl-history.js +558 -0
  33. package/dist/services/DataService/tvl-history.js.map +1 -0
  34. package/dist/services/Portfolio/yield-history.d.ts +1 -16
  35. package/dist/services/Portfolio/yield-history.js +2 -29
  36. package/dist/services/Portfolio/yield-history.js.map +1 -1
  37. package/dist/services/shared.d.ts +16 -0
  38. package/dist/services/shared.js +30 -0
  39. package/dist/services/shared.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/domain/index.ts +3 -0
  42. package/src/domain/pool-tvl.ts +66 -0
  43. package/src/facade/chain-configs.ts +26 -0
  44. package/src/facade/kasu.ts +20 -2
  45. package/src/facade/strategies.ts +26 -0
  46. package/src/facade/types.ts +20 -0
  47. package/src/index.ts +9 -0
  48. package/src/kasu-sdk.ts +19 -2
  49. package/src/sdk-config.ts +22 -0
  50. package/src/services/DataService/data-service.ts +296 -6
  51. package/src/services/DataService/tvl-history.ts +853 -0
  52. package/src/services/Portfolio/yield-history.ts +2 -35
  53. package/src/services/shared.ts +38 -1
@@ -1 +1 @@
1
- {"version":3,"file":"yield-history.js","sourceRoot":"","sources":["../../../src/services/Portfolio/yield-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yield-history.js","sourceRoot":"","sources":["../../../src/services/Portfolio/yield-history.ts"],"names":[],"mappings":"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"}
@@ -1 +1,17 @@
1
1
  export declare function filterArray<T>(array: T[], id_in?: string[]): T[];
2
+ /**
3
+ * A GraphQL VALIDATION error naming an entity, field or argument this
4
+ * deployment's subgraph does not have. A network error, a timeout or an
5
+ * indexing error is not one.
6
+ */
7
+ export declare function isMissingEntityError(error: unknown): boolean;
8
+ /**
9
+ * The only failure a history read (`getYieldHistory`, `getPoolTvlHistory`)
10
+ * turns into `[]`: a missing-schema error
11
+ * on a LITE deployment, whose subgraph may predate the entities. On a full
12
+ * deployment the entities are part of the schema, so the same error means a
13
+ * broken query or subgraph and THROWS — an empty chart there would hide it.
14
+ * Everything else (network, timeout, indexing) throws on every deployment, so
15
+ * a consumer can tell "no history here" from "history unavailable".
16
+ */
17
+ export declare function isEmptyHistoryError(error: unknown, liteDeployment: boolean): boolean;
@@ -9,4 +9,34 @@ export function filterArray(array, id_in) {
9
9
  });
10
10
  }
11
11
  }
12
+ /**
13
+ * A GraphQL VALIDATION error naming an entity, field or argument this
14
+ * deployment's subgraph does not have. A network error, a timeout or an
15
+ * indexing error is not one.
16
+ */
17
+ export function isMissingEntityError(error) {
18
+ if (typeof error !== 'object' || error === null)
19
+ return false;
20
+ const response = error.response;
21
+ const errors = response === null || response === void 0 ? void 0 : response.errors;
22
+ if (!Array.isArray(errors) || errors.length === 0)
23
+ return false;
24
+ return errors.every((e) => {
25
+ const message = e === null || e === void 0 ? void 0 : e.message;
26
+ return (typeof message === 'string' &&
27
+ /has no field|cannot query field|unknown (type|field|argument)|no such (type|field)/i.test(message));
28
+ });
29
+ }
30
+ /**
31
+ * The only failure a history read (`getYieldHistory`, `getPoolTvlHistory`)
32
+ * turns into `[]`: a missing-schema error
33
+ * on a LITE deployment, whose subgraph may predate the entities. On a full
34
+ * deployment the entities are part of the schema, so the same error means a
35
+ * broken query or subgraph and THROWS — an empty chart there would hide it.
36
+ * Everything else (network, timeout, indexing) throws on every deployment, so
37
+ * a consumer can tell "no history here" from "history unavailable".
38
+ */
39
+ export function isEmptyHistoryError(error, liteDeployment) {
40
+ return liteDeployment && isMissingEntityError(error);
41
+ }
12
42
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/services/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAI,KAAU,EAAE,KAAgB;IACvD,IAAG,CAAC,KAAK,EAAC,CAAC;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;SACG,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAsB,CAAC;YACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/services/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAI,KAAU,EAAE,KAAgB;IACvD,IAAG,CAAC,KAAK,EAAC,CAAC;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;SACG,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAsB,CAAC;YACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,QAAQ,GAAI,KAA6C,CAAC,QAAQ,CAAC;IACzE,MAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAI,CAAkC,aAAlC,CAAC,uBAAD,CAAC,CAAmC,OAAO,CAAC;QAC7D,OAAO,CACH,OAAO,OAAO,KAAK,QAAQ;YAC3B,qFAAqF,CAAC,IAAI,CACtF,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAAc,EACd,cAAuB;IAEvB,OAAO,cAAc,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kasufinance/kasu-sdk",
3
- "version": "2.12.0",
3
+ "version": "2.13.0",
4
4
  "description": "TypeScript SDK for the Kasu Finance protocol — pool data, portfolio analytics, and KYC-gated deposits and withdrawals on Base and XDC",
5
5
  "keywords": [
6
6
  "kasu",
@@ -188,6 +188,9 @@ export {
188
188
  } from './wallet-errors';
189
189
  export type { WalletFailure } from './wallet-errors';
190
190
 
191
+ export { poolTvl } from './pool-tvl';
192
+ export type { PoolTvlHistoryEntry } from './pool-tvl';
193
+
191
194
  export { aggregateYieldHistory, epochTrancheYield } from './yield-history';
192
195
  export type {
193
196
  EpochLockShares,
@@ -0,0 +1,66 @@
1
+ /**
2
+ * A pool's TVL — the total lent into it by everyone — and the shape of its
3
+ * history. Pure: the reads live in `services/DataService/tvl-history.ts`.
4
+ */
5
+
6
+ /**
7
+ * The ONE definition of a pool's TVL: what lenders have lent on chain
8
+ * (`lendingPool.balance` in the subgraph) plus the off-chain amount the
9
+ * pool's `ExternalTVL` contract records (`externalTVLOfPool`).
10
+ *
11
+ * Both inputs, and the result, are in DISPLAY units of the deployment's own
12
+ * stable token (USDC on Base and XDC USDC, AUDD on XDC AUDD) — `'1.5'` is
13
+ * one and a half tokens, not 1.5 minor units. Convert before formatting as
14
+ * USD.
15
+ *
16
+ * `getPoolOverview` (its `totalValueLocked.total`) and `getPoolTvlHistory`
17
+ * (every point) both call this, so the chart and the figure above it cannot
18
+ * be computed two ways.
19
+ */
20
+ export function poolTvl(onChainBalance: string, offChainTvl: string): number {
21
+ return parseFloat(onChainBalance) + parseFloat(offChainTvl);
22
+ }
23
+
24
+ /**
25
+ * One point of a pool's TVL history.
26
+ *
27
+ * - `kind: 'clearing'` — the TVL as it stood at the end of the block in which
28
+ * that epoch's clearing finished (`LendingPoolClearing.endBlockNumber`):
29
+ * accepted deposits and withdrawals and the applied interest included.
30
+ * - `kind: 'current'` — the closing "as of now" point, from two sources: the
31
+ * subgraph's latest balance (and its latest block time) and
32
+ * `externalTVLOfPool` at `latest` on the history provider. It equals
33
+ * today's `PoolOverview.totalValueLocked.total` when both that call's reads
34
+ * and these succeed; `getPoolOverview` falls back to an off-chain 0 when its
35
+ * own read fails, and the figure can move between the two calls.
36
+ */
37
+ export interface PoolTvlHistoryEntry {
38
+ /**
39
+ * The epoch (cycle) number, in the chain's numbering
40
+ * (`SystemVariables.currentEpochNumber`).
41
+ *
42
+ * A clearing point carries the epoch that clearing closed. The `current`
43
+ * point carries the CURRENT epoch — which may equal the newest clearing's
44
+ * epoch, because a clearing runs before its epoch rolls over. Epoch
45
+ * numbers can jump (a pool that did not clear for a while, or a
46
+ * deployment whose first clearing is numbered far below the next one), so
47
+ * plot by `timestamp`, never by `epochId`.
48
+ */
49
+ epochId: number;
50
+ /**
51
+ * Unix SECONDS. A clearing point: the time of the block its clearing
52
+ * finished in (`endTimestamp`). The `current` point: the time of the
53
+ * subgraph's latest indexed block. Clearings that finished in the same
54
+ * block (a pool catching up several epochs at once) share a timestamp and
55
+ * a `tvl`.
56
+ */
57
+ timestamp: number;
58
+ /**
59
+ * TVL in DISPLAY units of the deployment's own stable token (USDC on Base
60
+ * and XDC USDC, AUDD on XDC AUDD): `poolTvl(onChain, offChain)` at that
61
+ * block. Convert before formatting as USD.
62
+ */
63
+ tvl: number;
64
+ /** `'clearing'` for a cycle boundary; `'current'` for the closing point. */
65
+ kind: 'clearing' | 'current';
66
+ }
@@ -15,6 +15,29 @@ const XDC_RPC_URLS: string[] = [
15
15
  'https://rpc.primenumbers.xyz/',
16
16
  ];
17
17
 
18
+ /**
19
+ * XDC RPCs that serve PAST state, for `getPoolTvlHistory` (each verified
20
+ * with `externalTVLOfPool` at old blocks, CORS `*`), in fallback order. Not
21
+ * `rpc.xdcrpc.com`, which refuses older blocks, and never `rpc.xdc.org` /
22
+ * `erpc.xdc.org`. Public and rate-limited.
23
+ */
24
+ const XDC_HISTORY_RPC_URLS: string[] = [
25
+ 'https://rpc.primenumbers.xyz/',
26
+ 'https://rpc.ankr.com/xdc',
27
+ ];
28
+
29
+ /**
30
+ * Base RPCs that serve PAST state, in fallback order (each verified with
31
+ * `externalTVLOfPool` at old blocks; all answer CORS). Not
32
+ * `base-rpc.publicnode.com`, the default read RPC, which refuses old state.
33
+ * Public and rate-limited.
34
+ */
35
+ const BASE_HISTORY_RPC_URLS: string[] = [
36
+ 'https://mainnet.base.org',
37
+ 'https://base.drpc.org',
38
+ 'https://1rpc.io/base',
39
+ ];
40
+
18
41
  /**
19
42
  * Built-in chain configurations for Kasu-supported networks.
20
43
  *
@@ -59,6 +82,7 @@ export const CHAIN_CONFIGS: Record<'base' | 'xdc' | 'xdc-usdc' | 'plume', ChainC
59
82
  'https://base-rpc.publicnode.com',
60
83
  'https://mainnet.base.org',
61
84
  ],
85
+ historyRpcUrls: BASE_HISTORY_RPC_URLS,
62
86
  blockExplorerUrl: 'https://basescan.org',
63
87
  },
64
88
 
@@ -100,6 +124,7 @@ export const CHAIN_CONFIGS: Record<'base' | 'xdc' | 'xdc-usdc' | 'plume', ChainC
100
124
  currencyCode: 'AUD',
101
125
  },
102
126
  rpcUrls: XDC_RPC_URLS,
127
+ historyRpcUrls: XDC_HISTORY_RPC_URLS,
103
128
  blockExplorerUrl: 'https://xdcscan.com',
104
129
  },
105
130
 
@@ -134,6 +159,7 @@ export const CHAIN_CONFIGS: Record<'base' | 'xdc' | 'xdc-usdc' | 'plume', ChainC
134
159
  currencyCode: 'USD',
135
160
  },
136
161
  rpcUrls: XDC_RPC_URLS,
162
+ historyRpcUrls: XDC_HISTORY_RPC_URLS,
137
163
  blockExplorerUrl: 'https://xdcscan.com',
138
164
  },
139
165
 
@@ -65,17 +65,21 @@ export class Kasu {
65
65
  * of pools than the read-only one it came from.
66
66
  */
67
67
  private readonly _configOverrides: Partial<SdkConfigOptions>;
68
+ /** The caller's own history provider, kept so `connect` keeps it too. */
69
+ private readonly _historyProvider: Provider | undefined;
68
70
 
69
71
  private constructor(
70
72
  sdk: KasuSdk,
71
73
  chainConfig: ChainConfigEntry,
72
74
  signerOrProvider: Provider | Signer,
73
75
  configOverrides: Partial<SdkConfigOptions>,
76
+ historyProvider: Provider | undefined,
74
77
  ) {
75
78
  this._sdk = sdk;
76
79
  this._chainConfig = chainConfig;
77
80
  this._signerOrProvider = signerOrProvider;
78
81
  this._configOverrides = configOverrides;
82
+ this._historyProvider = historyProvider;
79
83
 
80
84
  this.strategies = new StrategiesFacade(
81
85
  sdk.DataService,
@@ -168,6 +172,9 @@ export class Kasu {
168
172
  stableAssetDecimals:
169
173
  overrides.stableAssetDecimals ??
170
174
  stableAssetOf(chainConfig)?.decimals,
175
+ historyRpcUrls:
176
+ overrides.historyRpcUrls ?? chainConfig.historyRpcUrls,
177
+ chainId: overrides.chainId ?? chainConfig.chainId,
171
178
  });
172
179
 
173
180
  const signerOrProvider =
@@ -179,8 +186,18 @@ export class Kasu {
179
186
  : chainConfig.name,
180
187
  );
181
188
 
182
- const sdk = new KasuSdk(sdkConfig, signerOrProvider);
183
- return new Kasu(sdk, chainConfig, signerOrProvider, overrides);
189
+ // An explicit history provider wins; otherwise DataService builds
190
+ // them from `historyRpcUrls`, pinned to `chainId` (the one place).
191
+ const sdk = new KasuSdk(sdkConfig, signerOrProvider, {
192
+ historyProvider: options.historyProvider,
193
+ });
194
+ return new Kasu(
195
+ sdk,
196
+ chainConfig,
197
+ signerOrProvider,
198
+ overrides,
199
+ options.historyProvider,
200
+ );
184
201
  }
185
202
 
186
203
  /**
@@ -201,6 +218,7 @@ export class Kasu {
201
218
  chain: this._chainConfig,
202
219
  signerOrProvider: signer,
203
220
  configOverrides: this._configOverrides,
221
+ historyProvider: this._historyProvider,
204
222
  });
205
223
  }
206
224
 
@@ -1,6 +1,8 @@
1
+ import { PoolTvlHistoryEntry } from '../domain/pool-tvl';
1
2
  import { selectVisiblePools } from '../domain/pools';
2
3
  import { pickShortDescription } from '../domain/strategy-summary';
3
4
  import { DataService } from '../services/DataService/data-service';
5
+ import { PoolTvlHistoryOptions } from '../services/DataService/tvl-history';
4
6
  import {
5
7
  PoolDelegateProfileAndHistory,
6
8
  PoolOverview,
@@ -149,6 +151,30 @@ export class StrategiesFacade {
149
151
  return await this._dataService.getPerformanceFee();
150
152
  }
151
153
 
154
+ /**
155
+ * The strategy's TVL (total lent by everyone) at every cycle boundary,
156
+ * then as of now — the data behind a TVL chart. Ascending in time; the
157
+ * last point (`kind: 'current'`) equals `strategy.tvl.total` when both
158
+ * calls' reads succeed (see `PoolTvlHistoryEntry`).
159
+ *
160
+ * `tvl` is in display units of the deployment's OWN stable token (USDC on
161
+ * Base and XDC USDC, AUDD on XDC AUDD); `timestamp` is unix SECONDS.
162
+ * `{ count }` = the newest `count` epochs, `{ fromEpoch }` = from that
163
+ * epoch on; `timeoutMs` (default 30 s) and `signal` bound the call. A
164
+ * malformed option throws before any network read. See
165
+ * `DataService.getPoolTvlHistory` for the reads, the cost and the errors.
166
+ *
167
+ * ```ts
168
+ * const points = await kasu.strategies.getPoolTvlHistory(poolId, { count: 52 });
169
+ * ```
170
+ */
171
+ async getPoolTvlHistory(
172
+ poolId: string,
173
+ options: PoolTvlHistoryOptions = {},
174
+ ): Promise<PoolTvlHistoryEntry[]> {
175
+ return await this._dataService.getPoolTvlHistory(poolId, options);
176
+ }
177
+
152
178
  /**
153
179
  * Fetch a single strategy by pool ID. Returns `null` if not found.
154
180
  */
@@ -70,6 +70,16 @@ export interface ChainConfigEntry {
70
70
  * Empty on a retired deployment, which has no read-only default.
71
71
  */
72
72
  rpcUrls: string[];
73
+ /**
74
+ * RPCs that SERVE PAST STATE (archive nodes), tried IN ORDER on failure,
75
+ * used only by `getPoolTvlHistory` to read the off-chain TVL at old
76
+ * blocks. Pruned nodes refuse those reads — some answer as if the call
77
+ * reverted — so these are never `rpcUrls[0]` by assumption. Public and
78
+ * RATE-LIMITED: an integrator should pass its own archive
79
+ * `KasuOptions.historyProvider`, which wins over them. Absent on a
80
+ * retired deployment.
81
+ */
82
+ historyRpcUrls?: string[];
73
83
  /**
74
84
  * Origin of the chain's block explorer, `https://…` with NO trailing
75
85
  * slash (`https://basescan.org`). Never append a path to it by hand: build
@@ -101,6 +111,16 @@ export interface KasuOptions {
101
111
  | import('@ethersproject/providers').Provider;
102
112
  /** Override any default config value. */
103
113
  configOverrides?: Partial<SdkConfigOptions>;
114
+ /**
115
+ * A provider that SERVES PAST STATE (an archive RPC), for
116
+ * `kasu.strategies.getPoolTvlHistory`. OPTIONAL: without one, the SDK
117
+ * builds one `StaticJsonRpcProvider` per
118
+ * `configOverrides.historyRpcUrls ?? chainConfig.historyRpcUrls` entry
119
+ * (tried in order, 10 s per call). The built-in URLs are public and
120
+ * rate-limited, so pass your own archive provider in production. Kept
121
+ * across `connect(signer)`.
122
+ */
123
+ historyProvider?: import('@ethersproject/providers').Provider;
104
124
  }
105
125
 
106
126
  // ---------------------------------------------------------------------------
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  // Core SDK class (low-level service access)
3
3
  // ---------------------------------------------------------------------------
4
4
  export { KasuSdk } from './kasu-sdk';
5
+ export type { KasuSdkOptions } from './kasu-sdk';
5
6
 
6
7
  // ---------------------------------------------------------------------------
7
8
  // Re-export config types
@@ -44,6 +45,14 @@ export type {
44
45
 
45
46
  export type { YieldHistoryOptions } from './services/Portfolio/yield-history';
46
47
 
48
+ export type { PoolTvlHistoryOptions } from './services/DataService/tvl-history';
49
+ export {
50
+ PastStateUnavailableError,
51
+ PoolTvlHistoryAbortedError,
52
+ PoolTvlHistoryTimeoutError,
53
+ } from './services/DataService/tvl-history';
54
+ export { NO_HISTORY_PROVIDER_MESSAGE } from './services/DataService/data-service';
55
+
47
56
  export type {
48
57
  UserLock,
49
58
  UserBonusData,
package/src/kasu-sdk.ts CHANGED
@@ -9,6 +9,15 @@ import { Portfolio } from './services/Portfolio/portfolio';
9
9
  import { Swapper } from './services/Swapper/swapper';
10
10
  import { UserLending } from './services/UserLending/user-lending';
11
11
 
12
+ /** Optional providers beyond the main signer-or-provider. */
13
+ export interface KasuSdkOptions {
14
+ /**
15
+ * A provider that SERVES PAST STATE (an archive RPC), for
16
+ * `DataService.getPoolTvlHistory`. Wins over `SdkConfig.historyRpcUrls`.
17
+ */
18
+ historyProvider?: Provider;
19
+ }
20
+
12
21
  export class KasuSdk {
13
22
  private readonly _graphClient: GraphQLClient;
14
23
  public readonly Locking: KSULocking;
@@ -16,11 +25,19 @@ export class KasuSdk {
16
25
  public readonly UserLending: UserLending;
17
26
  public readonly Portfolio: Portfolio;
18
27
  public readonly Swapper: Swapper;
19
- constructor(config: SdkConfig, signerOrProvider: Provider | Signer) {
28
+ constructor(
29
+ config: SdkConfig,
30
+ signerOrProvider: Provider | Signer,
31
+ options: KasuSdkOptions = {},
32
+ ) {
20
33
  this._graphClient = new GraphQLClient(config.subgraphUrl);
21
34
  this.Locking = new KSULocking(config, signerOrProvider);
22
35
  this.UserLending = new UserLending(config, signerOrProvider);
23
- this.DataService = new DataService(config, signerOrProvider);
36
+ this.DataService = new DataService(
37
+ config,
38
+ signerOrProvider,
39
+ options.historyProvider,
40
+ );
24
41
  this.Portfolio = new Portfolio(config, signerOrProvider);
25
42
  this.Swapper = new Swapper();
26
43
  }
package/src/sdk-config.ts CHANGED
@@ -50,6 +50,22 @@ export interface SdkConfigOptions {
50
50
  * @default 6
51
51
  */
52
52
  stableAssetDecimals?: number;
53
+ /**
54
+ * RPC URLs that SERVE PAST STATE (archive nodes), tried IN ORDER on
55
+ * failure, used only by `DataService.getPoolTvlHistory` to read the
56
+ * off-chain TVL at old blocks. A pruned node refuses those reads (some
57
+ * answer as if the call reverted), so these are never the default read
58
+ * RPC. An explicit `historyProvider` passed to `KasuSdk` / `Kasu.create`
59
+ * wins over them. The public defaults are rate-limited: an integrator
60
+ * should pass its own archive provider.
61
+ * @default [] — none
62
+ */
63
+ historyRpcUrls?: string[];
64
+ /**
65
+ * The chain id the history providers are pinned to (no `eth_chainId`
66
+ * round trip). `Kasu.create` sets it from the chain config.
67
+ */
68
+ chainId?: number;
53
69
  }
54
70
 
55
71
  export class SdkConfig {
@@ -61,6 +77,10 @@ export class SdkConfig {
61
77
  isLiteDeployment: boolean;
62
78
  poolMetadataMapping: Record<string, string>;
63
79
  stableAssetDecimals: number;
80
+ /** See `SdkConfigOptions.historyRpcUrls`. `[]` when none. */
81
+ historyRpcUrls: string[];
82
+ /** See `SdkConfigOptions.chainId`. */
83
+ chainId: number | undefined;
64
84
 
65
85
  constructor(options: SdkConfigOptions) {
66
86
  this.subgraphUrl = options.subgraphUrl;
@@ -77,5 +97,7 @@ export class SdkConfig {
77
97
  this.isLiteDeployment = options.isLiteDeployment ?? false;
78
98
  this.poolMetadataMapping = options.poolMetadataMapping ?? {};
79
99
  this.stableAssetDecimals = options.stableAssetDecimals ?? 6;
100
+ this.historyRpcUrls = [...(options.historyRpcUrls ?? [])];
101
+ this.chainId = options.chainId;
80
102
  }
81
103
  }