@paxoslabs/amplify-sdk 0.5.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/index.d.mts +3157 -759
  2. package/dist/index.d.ts +3157 -759
  3. package/dist/index.js +15008 -186
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +15067 -6
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +25 -86
  8. package/CHANGELOG.md +0 -320
  9. package/LICENSE +0 -28
  10. package/README.md +0 -119
  11. package/dist/chain-utils-5r2UnCDS.d.mts +0 -380
  12. package/dist/chain-utils-5r2UnCDS.d.ts +0 -380
  13. package/dist/chunk-4NQPS3JC.js +0 -2101
  14. package/dist/chunk-4NQPS3JC.js.map +0 -1
  15. package/dist/chunk-6CU533DM.mjs +0 -39
  16. package/dist/chunk-6CU533DM.mjs.map +0 -1
  17. package/dist/chunk-6JLKHV6O.js +0 -128
  18. package/dist/chunk-6JLKHV6O.js.map +0 -1
  19. package/dist/chunk-FHE43NKY.js +0 -1143
  20. package/dist/chunk-FHE43NKY.js.map +0 -1
  21. package/dist/chunk-GOJQYEJQ.js +0 -3212
  22. package/dist/chunk-GOJQYEJQ.js.map +0 -1
  23. package/dist/chunk-LMNADWTH.mjs +0 -2073
  24. package/dist/chunk-LMNADWTH.mjs.map +0 -1
  25. package/dist/chunk-ODXJYXUH.mjs +0 -3168
  26. package/dist/chunk-ODXJYXUH.mjs.map +0 -1
  27. package/dist/chunk-QMFYPHX5.mjs +0 -690
  28. package/dist/chunk-QMFYPHX5.mjs.map +0 -1
  29. package/dist/chunk-TNL23CO2.js +0 -45
  30. package/dist/chunk-TNL23CO2.js.map +0 -1
  31. package/dist/chunk-UY2WD7MF.mjs +0 -1133
  32. package/dist/chunk-UY2WD7MF.mjs.map +0 -1
  33. package/dist/chunk-WD6QFSXZ.js +0 -701
  34. package/dist/chunk-WD6QFSXZ.js.map +0 -1
  35. package/dist/chunk-Y5LBT2WT.mjs +0 -118
  36. package/dist/chunk-Y5LBT2WT.mjs.map +0 -1
  37. package/dist/core.d.mts +0 -195
  38. package/dist/core.d.ts +0 -195
  39. package/dist/core.js +0 -1236
  40. package/dist/core.js.map +0 -1
  41. package/dist/core.mjs +0 -1194
  42. package/dist/core.mjs.map +0 -1
  43. package/dist/display.d.mts +0 -472
  44. package/dist/display.d.ts +0 -472
  45. package/dist/display.js +0 -52
  46. package/dist/display.js.map +0 -1
  47. package/dist/display.mjs +0 -7
  48. package/dist/display.mjs.map +0 -1
  49. package/dist/index-D8RtV9cB.d.mts +0 -5114
  50. package/dist/index-ev_V5sjt.d.ts +0 -5114
  51. package/dist/utils.d.mts +0 -112
  52. package/dist/utils.d.ts +0 -112
  53. package/dist/utils.js +0 -67
  54. package/dist/utils.js.map +0 -1
  55. package/dist/utils.mjs +0 -25
  56. package/dist/utils.mjs.map +0 -1
  57. package/dist/vaults.d.mts +0 -4
  58. package/dist/vaults.d.ts +0 -4
  59. package/dist/vaults.js +0 -96
  60. package/dist/vaults.js.map +0 -1
  61. package/dist/vaults.mjs +0 -7
  62. package/dist/vaults.mjs.map +0 -1
@@ -1,380 +0,0 @@
1
- import { Chain } from 'viem/chains';
2
- import { Address } from 'viem';
3
-
4
- /**
5
- * SDK Configuration Constants
6
- *
7
- * Global constants for supported chains, yield types, tokens, and defaults.
8
- * Centralized configuration for address book integration and permit deposits.
9
- */
10
-
11
- /**
12
- * Yield Type identifiers
13
- *
14
- * Use as const values: YieldType.CORE, YieldType.TREASURY, YieldType.FRONTIER
15
- * Use as type annotation: yieldType: YieldType
16
- */
17
- declare const YieldType: {
18
- readonly CORE: "CORE";
19
- readonly TREASURY: "TREASURY";
20
- readonly FRONTIER: "FRONTIER";
21
- };
22
- type YieldType = (typeof YieldType)[keyof typeof YieldType];
23
-
24
- /**
25
- * Type definitions for Amplify SDK API integration
26
- *
27
- * These types define the data structures returned by the Earn SDK backend API
28
- * and internal cache structures used by the SDK.
29
- *
30
- * @module types/amplify-sdk-api
31
- */
32
-
33
- /**
34
- * Vault smart contract configuration
35
- *
36
- * Contains all contract addresses required for vault operations:
37
- * - boringVaultAddress: Main vault contract
38
- * - tellerAddress: Handles deposits and withdrawals
39
- * - accountantAddress: Manages accounting logic
40
- * - managerAddress: Controls strategy execution
41
- * - rolesAuthorityAddress: Enforces role-based access
42
- * - baseTokenAddress: Primary deposit token address
43
- * - baseTokenStandIn: Optional stand-in token
44
- * - communityCodeDepositorAddress: Optional community depositor contract
45
- */
46
- interface VaultContracts {
47
- boringVaultAddress: Address;
48
- tellerAddress: Address;
49
- accountantAddress: Address;
50
- managerAddress: Address;
51
- rolesAuthorityAddress: Address;
52
- baseTokenAddress: Address;
53
- baseTokenStandIn?: Address;
54
- communityCodeDepositorAddress?: Address;
55
- withdrawQueueAddress?: Address;
56
- depositFeeModuleAddress?: Address;
57
- withdrawFeeModuleAddress?: Address;
58
- }
59
- /**
60
- * Enterprise customer configuration for compliance features (e.g. KYT).
61
- */
62
- interface EnterpriseConfig {
63
- predicatePolicyId: string | null;
64
- }
65
- /**
66
- * A single depositable/withdrawable asset supported by a vault.
67
- */
68
- interface VaultSupportedAsset {
69
- /** Token contract address */
70
- address: Address;
71
- /** Chain ID where this asset can be deposited/withdrawn (may differ from vault chain for cross-chain vaults) */
72
- chainId?: number;
73
- /** Token symbol (e.g., USDC, USDT) */
74
- symbol: string;
75
- /** Full token name (e.g., USD Coin) */
76
- name: string;
77
- /** Number of decimal places (e.g., 6 for USDC, 18 for DAI) */
78
- decimals: number;
79
- /** CoinGecko token identifier for price lookups */
80
- coinGeckoTokenId?: string;
81
- /** Whether deposits are currently enabled for this vault-asset pair */
82
- depositable?: boolean;
83
- /** Whether withdrawals are currently enabled for this vault-asset pair */
84
- withdrawable?: boolean;
85
- }
86
- /**
87
- * Amplify vault configuration
88
- *
89
- * Represents a single vault with contract addresses, yield type, and supported deposit assets.
90
- * Multiple vaults can share the same baseTokenAddress (different chains/yield types).
91
- * A single vault can support multiple depositable assets.
92
- *
93
- * @example
94
- * ```typescript
95
- * const vault: AmplifyVault = {
96
- * id: "config-eth-core-001",
97
- * chainId: 1,
98
- * yieldType: "CORE",
99
- * vault: {
100
- * boringVaultAddress: "0x8a5Fb0Eb3E1a90AF81C5DFF9f2e5D0e7b8D4E5F6",
101
- * tellerAddress: "0x7B8C9D0E1F2A3B4C5D6E7F8A9B0C1D2E3F4A5B6C",
102
- * accountantAddress: "0x6A7B8C9D0E1F2A3B4C5D6E7F8A9B0C1D2E3F4A5B",
103
- * managerAddress: "0x5A6B7C8D9E0F1A2B3C4D5E6F7A8B9C0D1E2F3A4B",
104
- * rolesAuthorityAddress: "0x4A5B6C7D8E9F0A1B2C3D4E5F6A7B8C9D0E1F2A3B",
105
- * baseTokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
106
- * },
107
- * supportedAssets: [
108
- * {
109
- * address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
110
- * symbol: "USDC",
111
- * name: "USD Coin",
112
- * decimals: 6,
113
- * coinGeckoTokenId: "usd-coin"
114
- * }
115
- * ]
116
- * };
117
- * ```
118
- */
119
- interface VaultSLA {
120
- externalWithdrawalQueueDelaySLA: number;
121
- externalAccountantRateUpdateSLA: number;
122
- }
123
- /**
124
- * Deposit cap data read on-chain from a CommunityCodeDepositor contract.
125
- * Only populated for vaults that have both `communityCodeDepositorAddress`
126
- * and `depositFeeModuleAddress` configured.
127
- */
128
- interface VaultDepositCap {
129
- supplyCapInBase: bigint;
130
- /** True when `supplyCapInBase` is neither `0` nor `maxUint256` (unlimited). */
131
- hasDepositCap: boolean;
132
- }
133
- interface VaultDepositFeeEntry {
134
- /** Deposit asset address, null for global/default fee that applies to all assets */
135
- depositAsset: Address | null;
136
- /** Fee percentage as raw bigint (denominator 1e18 for DCD contracts), 0n when no fee */
137
- feePercentage: bigint;
138
- /** Flat fee as raw bigint, 0n when no fee */
139
- flatFee: bigint;
140
- }
141
- interface VaultDepositFees {
142
- hasFees: boolean;
143
- feeModuleAddress: Address | null;
144
- fees: VaultDepositFeeEntry[];
145
- /** ONE_HUNDRED_PERCENT constant from the fee module contract (denominator for percentage and flat fee calculations) */
146
- oneHundredPercent?: bigint;
147
- }
148
- interface VaultWithdrawFees {
149
- hasFees: boolean;
150
- feeModuleAddress: Address | null;
151
- /** Offer fee in basis points (e.g. 100n = 1%), 0n when no fee */
152
- offerFeeBps: bigint;
153
- /** Offer fee rate as raw bigint from indexer, 0n when no fee */
154
- offerFeeRate: bigint;
155
- }
156
- interface AmplifyVault {
157
- /** Unique identifier for the vault configuration */
158
- id: string;
159
- /** Chain ID where the vault is deployed (e.g., 1 for Ethereum) */
160
- chainId: number;
161
- /** Yield strategy type */
162
- yieldType: YieldType;
163
- /** Human-readable vault name */
164
- name: string;
165
- /** Whether the vault is being deprecated */
166
- inDeprecation: boolean;
167
- /** Vault smart contract addresses */
168
- vault: VaultContracts;
169
- /** Enterprise customer configuration (compliance settings, e.g. KYT) */
170
- enterpriseConfig?: EnterpriseConfig;
171
- /** SLA data from VaultSLAs table */
172
- sla?: VaultSLA;
173
- /** Whether this vault uses atomic settlement via submitOrderAndProcessAll */
174
- atomicWithdrawal: boolean;
175
- /** Supported deposit assets for this vault */
176
- supportedAssets: VaultSupportedAsset[];
177
- /**
178
- * Deposit cap data — only present for vaults with both a
179
- * CommunityCodeDepositor and a deposit fee module.
180
- */
181
- depositCap?: VaultDepositCap;
182
- /** (Optional) deposits fees for this vault */
183
- depositFees?: VaultDepositFees;
184
- /** (Optional) withdraw queue fees for this vault */
185
- withdrawFees?: VaultWithdrawFees;
186
- }
187
- /**
188
- * Supported asset (token) metadata
189
- *
190
- * Represents a cryptocurrency token with metadata and chain support.
191
- * Can be correlated with AmplifyVault via the vault's supportedAssets array.
192
- *
193
- * @example
194
- * ```typescript
195
- * const asset: SupportedAsset = {
196
- * address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
197
- * symbol: "USDC",
198
- * name: "USD Coin",
199
- * decimals: 6,
200
- * coinGeckoTokenId: "usd-coin",
201
- * chains: [1, 137, 8453, 42161]
202
- * };
203
- * ```
204
- */
205
- interface SupportedAsset {
206
- /** Token contract address */
207
- address: Address;
208
- /** Token symbol (e.g., USDC, USDT) */
209
- symbol: string;
210
- /** Full token name (e.g., USD Coin) */
211
- name: string;
212
- /** Number of decimal places (e.g., 6 for USDC, 18 for DAI) */
213
- decimals: number;
214
- /** CoinGecko token identifier for price lookups */
215
- coinGeckoTokenId?: string;
216
- /** Array of chain IDs where this token is supported */
217
- chains: number[];
218
- }
219
- /**
220
- * Filter options for vault queries
221
- *
222
- * Used to filter vaults by chain, yield type, or deposit token.
223
- * All filters are optional and can be combined.
224
- *
225
- * @example
226
- * ```typescript
227
- * // Get all CORE vaults on Ethereum
228
- * const options: VaultFilterOptions = {
229
- * chainId: 1,
230
- * yieldType: "CORE"
231
- * };
232
- *
233
- * // Get all vaults accepting USDC
234
- * const usdcOptions: VaultFilterOptions = {
235
- * depositTokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
236
- * };
237
- * ```
238
- */
239
- interface VaultFilterOptions {
240
- /** Filter by chain ID */
241
- chainId?: number;
242
- /** Filter by yield type */
243
- yieldType?: YieldType;
244
- /** Filter by deposit token address */
245
- depositTokenAddress?: Address;
246
- /** Filter by withdraw asset address */
247
- withdrawAssetAddress?: Address;
248
- /** Filter by settlement asset address */
249
- settlementAssetAddress?: Address;
250
- }
251
- /**
252
- * Filter options for asset queries
253
- *
254
- * Used to filter supported assets by chain IDs, yield type, address, or symbol.
255
- * All filters are optional and can be combined.
256
- *
257
- * Note: API endpoints only support `chains` and `yieldType` parameters.
258
- * The `address` and `symbol` filters are only applied in cache-layer filtering.
259
- *
260
- * @example
261
- * ```typescript
262
- * // Get all assets supported on Ethereum and Base (API call)
263
- * const options: AssetFilterOptions = {
264
- * chains: [1, 8453]
265
- * };
266
- *
267
- * // Get CORE yield type assets (API call)
268
- * const coreOptions: AssetFilterOptions = {
269
- * yieldType: "CORE"
270
- * };
271
- *
272
- * // Filter by address (cache-only)
273
- * const usdcOptions: AssetFilterOptions = {
274
- * address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
275
- * };
276
- *
277
- * // Filter by symbol (cache-only)
278
- * const symbolOptions: AssetFilterOptions = {
279
- * symbol: "USDC"
280
- * };
281
- * ```
282
- */
283
- interface AssetFilterOptions {
284
- /** Filter by chain IDs (API + cache: assets with these chains in chains array) */
285
- chains?: number[];
286
- /** Filter by yield type (API + cache: CORE, TREASURY, or FRONTIER) */
287
- yieldType?: YieldType;
288
- /** Filter by token address (cache-only: exact address match) */
289
- address?: string;
290
- /** Filter by token symbol (cache-only: exact symbol match) */
291
- symbol?: string;
292
- }
293
- /**
294
- * API error with descriptive messages
295
- *
296
- * Thrown when API requests fail due to network errors, server errors,
297
- * or malformed responses.
298
- *
299
- * @example
300
- * ```typescript
301
- * throw new APIError("Failed to fetch vaults: Network timeout", {
302
- * statusCode: 408,
303
- * endpoint: "/v1/earn-sdk/vaults"
304
- * });
305
- * ```
306
- */
307
- declare class APIError extends Error {
308
- /**
309
- * HTTP status code (if available)
310
- */
311
- statusCode?: number;
312
- /**
313
- * API endpoint that failed
314
- */
315
- endpoint?: string;
316
- /**
317
- * Original error cause
318
- */
319
- cause?: unknown;
320
- constructor(message: string, options?: {
321
- statusCode?: number;
322
- endpoint?: string;
323
- cause?: unknown;
324
- });
325
- }
326
- /**
327
- * Supported asset information for withdrawal
328
- *
329
- * Asset grouped with available vaults that support withdrawal of that asset.
330
- *
331
- * @example
332
- * ```typescript
333
- * const asset: WithdrawSupportedAsset = {
334
- * address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
335
- * symbol: "USDC",
336
- * decimals: 6,
337
- * vaults: [
338
- * { id: "core-usdc-eth", yieldType: "CORE", chainId: 1, vaultId: "..." },
339
- * { id: "core-usdc-boba", yieldType: "CORE", chainId: 288, vaultId: "..." },
340
- * ],
341
- * };
342
- * ```
343
- */
344
- interface WithdrawSupportedAsset {
345
- /** Token contract address */
346
- address: Address;
347
- /** Token symbol (e.g., "USDC", "ETH") */
348
- symbol: string;
349
- /** Number of decimal places for this token */
350
- decimals: number;
351
- /** Array of vaults that support withdrawals of this asset */
352
- vaults: Array<{
353
- id: string;
354
- yieldType: YieldType;
355
- chainId: number;
356
- vaultId: string;
357
- }>;
358
- }
359
-
360
- /**
361
- * Flexible chain ID type that accepts both number and string
362
- */
363
- type ChainId = number | `${number}`;
364
- /**
365
- * Normalizes a ChainId to a number
366
- */
367
- declare function toChainId(value: ChainId): number;
368
- /**
369
- * Gets a chain object from the vault config response
370
- * @param chainId The chain ID to look up
371
- * @param config Optional config object. If not provided, will fetch from API
372
- * @returns Promise<Chain>
373
- */
374
- declare function getChainFromConfig(chainId: number, config?: AmplifyVault[]): Promise<Chain>;
375
- /**
376
- * Clears the chains cache
377
- */
378
- declare function clearChainsCache(): void;
379
-
380
- export { type AmplifyVault as A, type ChainId as C, type EnterpriseConfig as E, type SupportedAsset as S, type VaultFilterOptions as V, type WithdrawSupportedAsset as W, YieldType as Y, type AssetFilterOptions as a, APIError as b, clearChainsCache as c, type VaultDepositFees as d, type VaultSLA as e, type VaultSupportedAsset as f, getChainFromConfig as g, type VaultWithdrawFees as h, toChainId as t };