@vaultsfyi/sdk 1.0.2 → 1.0.3

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/client.js CHANGED
@@ -71,89 +71,24 @@ var VaultsSdk = class {
71
71
  }
72
72
  return response.json();
73
73
  }
74
- async bestDepositOption(params) {
75
- const { userAddress } = params.path;
76
- return await this.fetchData(
77
- `/v1/portfolio/best-deposit-options/${userAddress}`,
78
- params,
79
- "POST"
80
- );
81
- }
82
- async getVault(params) {
83
- const { network, vaultAddress } = params.path;
84
- return await this.fetchData(
85
- `/v1/vaults/${network}/${vaultAddress}/`,
86
- params
87
- );
88
- }
89
- async getDetailedVaults(params) {
90
- return await this.fetchData("/v1/detailed/vaults", params);
91
- }
92
- async getVaultHolderEvents(params) {
93
- const { network, vaultAddress, holder } = params.path;
94
- return await this.fetchData(
95
- `/v1/vaults/${network}/${vaultAddress}/holder-events/${holder}`,
96
- params
97
- );
98
- }
99
- async getVaultTotalReturns(params) {
100
- const { network, vaultAddress, holder } = params.path;
101
- return await this.fetchData(
102
- `/v1/vaults/${network}/${vaultAddress}/holder-total-returns/${holder}`,
103
- params
104
- );
105
- }
106
- async getAllVaults(params) {
107
- return await this.fetchData("/v1/detailed/vaults", params);
108
- }
109
- async getVaultApy(params) {
110
- const { network, vaultAddress } = params.path;
111
- return await this.fetchData(
112
- `/v1/vaults/${network}/${vaultAddress}/apy`,
113
- params
114
- );
115
- }
116
- async getHistoricalData(params) {
117
- const { network, vaultAddress } = params.path;
118
- return await this.fetchData(
119
- `/v1/vaults/${network}/${vaultAddress}/historical-data`,
120
- params
121
- );
122
- }
123
- async getActionsDetails(params) {
124
- return await this.fetchData(
125
- "/v1/transactions/vaults/actions/details",
126
- params
127
- );
128
- }
129
- async getWalletBalances(params) {
130
- return await this.fetchData("/v1/transactions/wallet-balances", params);
131
- }
132
- async getAllPositions(params) {
133
- const { userAddress } = params.path;
134
- return await this.fetchData(`/v1/transactions/positions/${userAddress}`);
135
- }
136
- async getActions(endpoint, params) {
137
- return await this.fetchData(endpoint, params);
138
- }
139
74
  async getBenchmarks() {
140
75
  return await this.fetchData("/v1/benchmarks");
141
76
  }
142
- async getVaultHistoricalDataV2(params) {
77
+ async getVaultHistoricalData(params) {
143
78
  const { network, vaultAddress } = params.path;
144
79
  return await this.fetchData(
145
80
  `/v2/historical/${network}/${vaultAddress}`,
146
81
  params
147
82
  );
148
83
  }
149
- async getVaultTotalReturnsV2(params) {
84
+ async getVaultTotalReturns(params) {
150
85
  const { network, vaultAddress, userAddress } = params.path;
151
86
  return await this.fetchData(
152
87
  `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,
153
88
  params
154
89
  );
155
90
  }
156
- async getPositionsV2(params) {
91
+ async getPositions(params) {
157
92
  const { userAddress } = params.path;
158
93
  return await this.fetchData(
159
94
  `/v2/portfolio/positions/${userAddress}`,
@@ -167,17 +102,17 @@ var VaultsSdk = class {
167
102
  params
168
103
  );
169
104
  }
170
- async getVaultHolderEventsV2(params) {
105
+ async getVaultHolderEvents(params) {
171
106
  const { network, vaultAddress, userAddress } = params.path;
172
107
  return await this.fetchData(
173
108
  `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,
174
109
  params
175
110
  );
176
111
  }
177
- async getAllVaultsV2(params) {
112
+ async getAllVaults(params) {
178
113
  return await this.fetchData("/v2/detailed-vaults", params);
179
114
  }
180
- async getVaultV2(params) {
115
+ async getVault(params) {
181
116
  const { network, vaultAddress } = params.path;
182
117
  return await this.fetchData(
183
118
  `/v2/detailed-vaults/${network}/${vaultAddress}`,
@@ -191,14 +126,14 @@ var VaultsSdk = class {
191
126
  params
192
127
  );
193
128
  }
194
- async getActionsDetailsV2(params) {
129
+ async getTransactionsContext(params) {
195
130
  const { userAddress, network, vaultAddress } = params.path;
196
131
  return await this.fetchData(
197
132
  `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,
198
133
  params
199
134
  );
200
135
  }
201
- async getActionsV2(params) {
136
+ async getActions(params) {
202
137
  const { action, userAddress, network, vaultAddress } = params.path;
203
138
  return await this.fetchData(
204
139
  `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts","../src/errors.ts","../src/utils/generateQueryParams.ts"],"sourcesContent":["import { HttpResponseError } from './errors'\nimport type { paths } from './types/openapi'\nimport type { paths as pathsV2 } from './types/openapiV2'\nimport { generateQueryParams } from './utils/generateQueryParams'\n\ninterface ConstructorOptions {\n apiKey: string\n}\n\ninterface InternalOptions {\n apiBaseUrl: string\n}\n\ntype Endpoint = keyof paths\ntype EndpointV2 = keyof pathsV2\n\ntype ExtractResponse<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\ntype ExtractResponseV2<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\n\ntype Response<T extends Endpoint> = ExtractResponse<paths[T]['get' | 'post']>\ntype ResponseV2<T extends EndpointV2> = ExtractResponseV2<pathsV2[T]['get' | 'post']>\n\ntype ExtractParams<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\ntype ExtractParamsV2<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\n\ntype Body<T extends Endpoint> = paths[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : paths[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype BodyV2<T extends EndpointV2> = pathsV2[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV2[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype Params<T extends Endpoint> = Body<T> extends undefined\n ? ExtractParams<paths[T]['get' | 'post']>\n : ExtractParams<paths[T]['get' | 'post']> & Body<T>\n\ntype ParamsV2<T extends EndpointV2> = BodyV2<T> extends undefined\n ? ExtractParamsV2<pathsV2[T]['get' | 'post']>\n : ExtractParamsV2<pathsV2[T]['get' | 'post']> & BodyV2<T>\n\ntype ActionEndpoint =\n | '/v1/transactions/vaults/deposit'\n | '/v1/transactions/vaults/redeem'\n | '/v1/transactions/vaults/request-redeem'\n | '/v1/transactions/vaults/claim-redeem'\n\nexport class VaultsSdk {\n private apiBaseUrl: string\n private apiKey: string\n\n constructor(options: ConstructorOptions)\n constructor(options: ConstructorOptions, internalOptions: InternalOptions)\n constructor(options: ConstructorOptions, internalOptions?: InternalOptions) {\n this.apiKey = options.apiKey\n this.apiBaseUrl = internalOptions?.apiBaseUrl ?? 'https://api.vaults.fyi'\n }\n\n private async fetchData<T extends Endpoint | EndpointV2>(\n endpoint: string,\n params?: T extends Endpoint ? Params<T> : T extends EndpointV2 ? ParamsV2<T> : never,\n method: 'POST' | 'GET' = 'GET'\n ): Promise<T extends Endpoint ? Response<T> : T extends EndpointV2 ? ResponseV2<T> : never> {\n const queryParams = generateQueryParams(params?.query)\n\n const body = params && 'body' in params ? params.body : undefined\n const stringifiedBody = body ? JSON.stringify(body) : undefined\n\n const response = await fetch(`${this.apiBaseUrl}${endpoint}${queryParams}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n },\n body: stringifiedBody,\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new HttpResponseError(error.message)\n }\n\n return response.json()\n }\n\n async bestDepositOption(params: Params<'/v1/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v1/portfolio/best-deposit-options/{userAddress}'>(\n `/v1/portfolio/best-deposit-options/${userAddress}`,\n params,\n 'POST'\n )\n }\n\n async getVault(params: Params<'/v1/vaults/{network}/{vaultAddress}/'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/'>(\n `/v1/vaults/${network}/${vaultAddress}/`,\n params\n )\n }\n\n async getDetailedVaults(params: Params<'/v1/detailed/vaults'>) {\n return await this.fetchData<'/v1/detailed/vaults'>('/v1/detailed/vaults', params)\n }\n\n async getVaultHolderEvents(params: Params<'/v1/vaults/{network}/{vaultAddress}/holder-events/{holder}'>) {\n const { network, vaultAddress, holder } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/holder-events/{holder}'>(\n `/v1/vaults/${network}/${vaultAddress}/holder-events/${holder}`,\n params\n )\n }\n\n async getVaultTotalReturns(params: Params<'/v1/vaults/{network}/{vaultAddress}/holder-total-returns/{holder}'>) {\n const { network, vaultAddress, holder } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/holder-total-returns/{holder}'>(\n `/v1/vaults/${network}/${vaultAddress}/holder-total-returns/${holder}`,\n params\n )\n }\n\n async getAllVaults(params?: Params<'/v1/detailed/vaults'>) {\n return await this.fetchData<'/v1/detailed/vaults'>('/v1/detailed/vaults', params)\n }\n\n async getVaultApy(params: Params<'/v1/vaults/{network}/{vaultAddress}/apy'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/apy'>(\n `/v1/vaults/${network}/${vaultAddress}/apy`,\n params\n )\n }\n\n async getHistoricalData(params: Params<'/v1/vaults/{network}/{vaultAddress}/historical-data'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/historical-data'>(\n `/v1/vaults/${network}/${vaultAddress}/historical-data`,\n params\n )\n }\n\n async getActionsDetails(params: Params<'/v1/transactions/vaults/actions/details'>) {\n return await this.fetchData<'/v1/transactions/vaults/actions/details'>(\n '/v1/transactions/vaults/actions/details',\n params\n )\n }\n\n async getWalletBalances(params: Params<'/v1/portfolio/wallet-balances'>) {\n return await this.fetchData<'/v1/portfolio/wallet-balances'>('/v1/transactions/wallet-balances', params)\n }\n\n async getAllPositions(params: Params<'/v1/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v1/portfolio/positions/{userAddress}'>(`/v1/transactions/positions/${userAddress}`)\n }\n\n async getActions(endpoint: (ActionEndpoint | string) & {}, params: Params<ActionEndpoint>) {\n return await this.fetchData<ActionEndpoint>(endpoint, params)\n }\n\n async getBenchmarks() {\n return await this.fetchData<'/v1/benchmarks'>('/v1/benchmarks')\n }\n\n async getVaultHistoricalDataV2(params: ParamsV2<'/v2/historical/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/historical/{network}/{vaultAddress}'>(\n `/v2/historical/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getVaultTotalReturnsV2(params: ParamsV2<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getPositionsV2(params: ParamsV2<'/v2/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/positions/{userAddress}'>(\n `/v2/portfolio/positions/${userAddress}`,\n params\n )\n }\n\n async getDepositOptions(params: ParamsV2<'/v2/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/best-deposit-options/{userAddress}'>(\n `/v2/portfolio/best-deposit-options/${userAddress}`,\n params\n )\n }\n\n async getVaultHolderEventsV2(params: ParamsV2<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getAllVaultsV2(params?: ParamsV2<'/v2/detailed-vaults'>) {\n return await this.fetchData<'/v2/detailed-vaults'>('/v2/detailed-vaults', params)\n }\n\n async getVaultV2(params: ParamsV2<'/v2/detailed-vaults/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/detailed-vaults/{network}/{vaultAddress}'>(\n `/v2/detailed-vaults/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getIdleAssets(params: ParamsV2<'/v2/portfolio/idle-assets/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/idle-assets/{userAddress}'>(\n `/v2/portfolio/idle-assets/${userAddress}`,\n params\n )\n }\n\n async getActionsDetailsV2(params: ParamsV2<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>) {\n const { userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getActionsV2(params: ParamsV2<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>) {\n const { action, userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n}\n","export class HttpResponseError extends Error {}\n","export function generateQueryParams(\n queryParams: Record<string, string | number | boolean | null | undefined | bigint | string[]> | undefined\n): string {\n if (!queryParams || Object.keys(queryParams).length === 0) return ''\n\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(queryParams)) {\n if (value == null) continue\n\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item)\n }\n } else {\n params.set(key, value.toString())\n }\n }\n\n return `?${params}`\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,oBAAN,cAAgC,MAAM;AAAC;;;ACAvC,SAAS,oBACd,aACQ;AACR,MAAI,CAAC,eAAe,OAAO,KAAK,WAAW,EAAE,WAAW,EAAG,QAAO;AAElE,QAAM,SAAS,IAAI,gBAAgB;AACnC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,GAAG;AACtD,QAAI,SAAS,KAAM;AAEnB,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAW,QAAQ,OAAO;AACxB,eAAO,OAAO,KAAK,IAAI;AAAA,MACzB;AAAA,IACF,OAAO;AACL,aAAO,IAAI,KAAK,MAAM,SAAS,CAAC;AAAA,IAClC;AAAA,EACF;AAEA,SAAO,IAAI,MAAM;AACnB;;;AF4CO,IAAM,YAAN,MAAgB;AAAA,EACb;AAAA,EACA;AAAA,EAIR,YAAY,SAA6B,iBAAmC;AAC1E,SAAK,SAAS,QAAQ;AACtB,SAAK,aAAa,iBAAiB,cAAc;AAAA,EACnD;AAAA,EAEA,MAAc,UACZ,UACA,QACA,SAAyB,OACiE;AAC1F,UAAM,cAAc,oBAAoB,QAAQ,KAAK;AAErD,UAAM,OAAO,UAAU,UAAU,SAAS,OAAO,OAAO;AACxD,UAAM,kBAAkB,OAAO,KAAK,UAAU,IAAI,IAAI;AAEtD,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,UAAU,GAAG,QAAQ,GAAG,WAAW,IAAI;AAAA,MAC1E;AAAA,MACA,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,aAAa,KAAK;AAAA,MACpB;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,QAAQ,MAAM,SAAS,KAAK;AAClC,YAAM,IAAI,kBAAkB,MAAM,OAAO;AAAA,IAC3C;AAEA,WAAO,SAAS,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,kBAAkB,QAAoE;AAC1F,UAAM,EAAE,YAAY,IAAI,OAAO;AAC/B,WAAO,MAAM,KAAK;AAAA,MAChB,sCAAsC,WAAW;AAAA,MACjD;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,QAAwD;AACrE,UAAM,EAAE,SAAS,aAAa,IAAI,OAAO;AACzC,WAAO,MAAM,KAAK;AAAA,MAChB,cAAc,OAAO,IAAI,YAAY;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,QAAuC;AAC7D,WAAO,MAAM,KAAK,UAAiC,uBAAuB,MAAM;AAAA,EAClF;AAAA,EAEA,MAAM,qBAAqB,QAA8E;AACvG,UAAM,EAAE,SAAS,cAAc,OAAO,IAAI,OAAO;AACjD,WAAO,MAAM,KAAK;AAAA,MAChB,cAAc,OAAO,IAAI,YAAY,kBAAkB,MAAM;AAAA,MAC7D;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,qBAAqB,QAAqF;AAC9G,UAAM,EAAE,SAAS,cAAc,OAAO,IAAI,OAAO;AACjD,WAAO,MAAM,KAAK;AAAA,MAChB,cAAc,OAAO,IAAI,YAAY,yBAAyB,MAAM;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,QAAwC;AACzD,WAAO,MAAM,KAAK,UAAiC,uBAAuB,MAAM;AAAA,EAClF;AAAA,EAEA,MAAM,YAAY,QAA2D;AAC3E,UAAM,EAAE,SAAS,aAAa,IAAI,OAAO;AACzC,WAAO,MAAM,KAAK;AAAA,MAChB,cAAc,OAAO,IAAI,YAAY;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,QAAuE;AAC7F,UAAM,EAAE,SAAS,aAAa,IAAI,OAAO;AACzC,WAAO,MAAM,KAAK;AAAA,MAChB,cAAc,OAAO,IAAI,YAAY;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,QAA2D;AACjF,WAAO,MAAM,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,QAAiD;AACvE,WAAO,MAAM,KAAK,UAA2C,oCAAoC,MAAM;AAAA,EACzG;AAAA,EAEA,MAAM,gBAAgB,QAAyD;AAC7E,UAAM,EAAE,YAAY,IAAI,OAAO;AAC/B,WAAO,MAAM,KAAK,UAAmD,8BAA8B,WAAW,EAAE;AAAA,EAClH;AAAA,EAEA,MAAM,WAAW,UAA0C,QAAgC;AACzF,WAAO,MAAM,KAAK,UAA0B,UAAU,MAAM;AAAA,EAC9D;AAAA,EAEA,MAAM,gBAAgB;AACpB,WAAO,MAAM,KAAK,UAA4B,gBAAgB;AAAA,EAChE;AAAA,EAEA,MAAM,yBAAyB,QAA6D;AAC1F,UAAM,EAAE,SAAS,aAAa,IAAI,OAAO;AACzC,WAAO,MAAM,KAAK;AAAA,MAChB,kBAAkB,OAAO,IAAI,YAAY;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,uBAAuB,QAAkF;AAC7G,UAAM,EAAE,SAAS,cAAc,YAAY,IAAI,OAAO;AACtD,WAAO,MAAM,KAAK;AAAA,MAChB,yBAAyB,WAAW,IAAI,OAAO,IAAI,YAAY;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,QAA2D;AAC9E,UAAM,EAAE,YAAY,IAAI,OAAO;AAC/B,WAAO,MAAM,KAAK;AAAA,MAChB,2BAA2B,WAAW;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,QAAsE;AAC5F,UAAM,EAAE,YAAY,IAAI,OAAO;AAC/B,WAAO,MAAM,KAAK;AAAA,MAChB,sCAAsC,WAAW;AAAA,MACjD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,uBAAuB,QAAiF;AAC5G,UAAM,EAAE,SAAS,cAAc,YAAY,IAAI,OAAO;AACtD,WAAO,MAAM,KAAK;AAAA,MAChB,wBAAwB,WAAW,IAAI,OAAO,IAAI,YAAY;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,QAA0C;AAC7D,WAAO,MAAM,KAAK,UAAiC,uBAAuB,MAAM;AAAA,EAClF;AAAA,EAEA,MAAM,WAAW,QAAkE;AACjF,UAAM,EAAE,SAAS,aAAa,IAAI,OAAO;AACzC,WAAO,MAAM,KAAK;AAAA,MAChB,uBAAuB,OAAO,IAAI,YAAY;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,QAA6D;AAC/E,UAAM,EAAE,YAAY,IAAI,OAAO;AAC/B,WAAO,MAAM,KAAK;AAAA,MAChB,6BAA6B,WAAW;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB,QAAqF;AAC7G,UAAM,EAAE,aAAa,SAAS,aAAa,IAAI,OAAO;AACtD,WAAO,MAAM,KAAK;AAAA,MAChB,4BAA4B,WAAW,IAAI,OAAO,IAAI,YAAY;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,QAAsF;AACvG,UAAM,EAAE,QAAQ,aAAa,SAAS,aAAa,IAAI,OAAO;AAC9D,WAAO,MAAM,KAAK;AAAA,MAChB,oBAAoB,MAAM,IAAI,WAAW,IAAI,OAAO,IAAI,YAAY;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/client.ts","../src/errors.ts","../src/utils/generateQueryParams.ts"],"sourcesContent":["import { HttpResponseError } from './errors'\nimport type { paths as pathsV1 } from './types/openapi'\nimport type { paths as pathsV2 } from './types/openapiV2'\nimport { generateQueryParams } from './utils/generateQueryParams'\n\ninterface ConstructorOptions {\n apiKey: string\n}\n\ninterface InternalOptions {\n apiBaseUrl: string\n}\n\ntype EndpointV1 = keyof pathsV1\ntype EndpointV2 = keyof pathsV2\n\ntype ExtractResponseV1<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\ntype ExtractResponseV2<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\n\ntype ResponseV1<T extends EndpointV1> = ExtractResponseV1<pathsV1[T]['get' | 'post']>\ntype ResponseV2<T extends EndpointV2> = ExtractResponseV2<pathsV2[T]['get' | 'post']>\n\ntype ExtractParamsV1<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\ntype ExtractParamsV2<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\n\ntype BodyV1<T extends EndpointV1> = pathsV1[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV1[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype BodyV2<T extends EndpointV2> = pathsV2[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV2[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype ParamsV1<T extends EndpointV1> = BodyV1<T> extends undefined\n ? ExtractParamsV1<pathsV1[T]['get' | 'post']>\n : ExtractParamsV1<pathsV1[T]['get' | 'post']> & BodyV1<T>\n\ntype ParamsV2<T extends EndpointV2> = BodyV2<T> extends undefined\n ? ExtractParamsV2<pathsV2[T]['get' | 'post']>\n : ExtractParamsV2<pathsV2[T]['get' | 'post']> & BodyV2<T>\n\nexport class VaultsSdk {\n private apiBaseUrl: string\n private apiKey: string\n\n constructor(options: ConstructorOptions)\n constructor(options: ConstructorOptions, internalOptions: InternalOptions)\n constructor(options: ConstructorOptions, internalOptions?: InternalOptions) {\n this.apiKey = options.apiKey\n this.apiBaseUrl = internalOptions?.apiBaseUrl ?? 'https://api.vaults.fyi'\n }\n\n private async fetchData<T extends EndpointV1 | EndpointV2>(\n endpoint: string,\n params?: T extends EndpointV1 ? ParamsV1<T> : T extends EndpointV2 ? ParamsV2<T> : never,\n method: 'POST' | 'GET' = 'GET'\n ): Promise<T extends EndpointV1 ? ResponseV1<T> : T extends EndpointV2 ? ResponseV2<T> : never> {\n const queryParams = generateQueryParams(params?.query)\n\n const body = params && 'body' in params ? params.body : undefined\n const stringifiedBody = body ? JSON.stringify(body) : undefined\n\n const response = await fetch(`${this.apiBaseUrl}${endpoint}${queryParams}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n },\n body: stringifiedBody,\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new HttpResponseError(error.message)\n }\n\n return response.json()\n }\n\n async getBenchmarks() {\n return await this.fetchData<'/v1/benchmarks'>('/v1/benchmarks')\n }\n\n async getVaultHistoricalData(params: ParamsV2<'/v2/historical/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/historical/{network}/{vaultAddress}'>(\n `/v2/historical/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getVaultTotalReturns(params: ParamsV2<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getPositions(params: ParamsV2<'/v2/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/positions/{userAddress}'>(\n `/v2/portfolio/positions/${userAddress}`,\n params\n )\n }\n\n async getDepositOptions(params: ParamsV2<'/v2/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/best-deposit-options/{userAddress}'>(\n `/v2/portfolio/best-deposit-options/${userAddress}`,\n params\n )\n }\n\n async getVaultHolderEvents(params: ParamsV2<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getAllVaults(params?: ParamsV2<'/v2/detailed-vaults'>) {\n return await this.fetchData<'/v2/detailed-vaults'>('/v2/detailed-vaults', params)\n }\n\n async getVault(params: ParamsV2<'/v2/detailed-vaults/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/detailed-vaults/{network}/{vaultAddress}'>(\n `/v2/detailed-vaults/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getIdleAssets(params: ParamsV2<'/v2/portfolio/idle-assets/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/idle-assets/{userAddress}'>(\n `/v2/portfolio/idle-assets/${userAddress}`,\n params\n )\n }\n\n async getTransactionsContext(params: ParamsV2<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>) {\n const { userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getActions(params: ParamsV2<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>) {\n const { action, userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n}\n","export class HttpResponseError extends Error {}\n","export function generateQueryParams(\n queryParams: Record<string, string | number | boolean | null | undefined | bigint | string[]> | undefined\n): string {\n if (!queryParams || Object.keys(queryParams).length === 0) return ''\n\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(queryParams)) {\n if (value == null) continue\n\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item)\n }\n } else {\n params.set(key, value.toString())\n }\n }\n\n return `?${params}`\n}\n"],"mappings":"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","names":[]}
package/dist/client.mjs CHANGED
@@ -45,89 +45,24 @@ var VaultsSdk = class {
45
45
  }
46
46
  return response.json();
47
47
  }
48
- async bestDepositOption(params) {
49
- const { userAddress } = params.path;
50
- return await this.fetchData(
51
- `/v1/portfolio/best-deposit-options/${userAddress}`,
52
- params,
53
- "POST"
54
- );
55
- }
56
- async getVault(params) {
57
- const { network, vaultAddress } = params.path;
58
- return await this.fetchData(
59
- `/v1/vaults/${network}/${vaultAddress}/`,
60
- params
61
- );
62
- }
63
- async getDetailedVaults(params) {
64
- return await this.fetchData("/v1/detailed/vaults", params);
65
- }
66
- async getVaultHolderEvents(params) {
67
- const { network, vaultAddress, holder } = params.path;
68
- return await this.fetchData(
69
- `/v1/vaults/${network}/${vaultAddress}/holder-events/${holder}`,
70
- params
71
- );
72
- }
73
- async getVaultTotalReturns(params) {
74
- const { network, vaultAddress, holder } = params.path;
75
- return await this.fetchData(
76
- `/v1/vaults/${network}/${vaultAddress}/holder-total-returns/${holder}`,
77
- params
78
- );
79
- }
80
- async getAllVaults(params) {
81
- return await this.fetchData("/v1/detailed/vaults", params);
82
- }
83
- async getVaultApy(params) {
84
- const { network, vaultAddress } = params.path;
85
- return await this.fetchData(
86
- `/v1/vaults/${network}/${vaultAddress}/apy`,
87
- params
88
- );
89
- }
90
- async getHistoricalData(params) {
91
- const { network, vaultAddress } = params.path;
92
- return await this.fetchData(
93
- `/v1/vaults/${network}/${vaultAddress}/historical-data`,
94
- params
95
- );
96
- }
97
- async getActionsDetails(params) {
98
- return await this.fetchData(
99
- "/v1/transactions/vaults/actions/details",
100
- params
101
- );
102
- }
103
- async getWalletBalances(params) {
104
- return await this.fetchData("/v1/transactions/wallet-balances", params);
105
- }
106
- async getAllPositions(params) {
107
- const { userAddress } = params.path;
108
- return await this.fetchData(`/v1/transactions/positions/${userAddress}`);
109
- }
110
- async getActions(endpoint, params) {
111
- return await this.fetchData(endpoint, params);
112
- }
113
48
  async getBenchmarks() {
114
49
  return await this.fetchData("/v1/benchmarks");
115
50
  }
116
- async getVaultHistoricalDataV2(params) {
51
+ async getVaultHistoricalData(params) {
117
52
  const { network, vaultAddress } = params.path;
118
53
  return await this.fetchData(
119
54
  `/v2/historical/${network}/${vaultAddress}`,
120
55
  params
121
56
  );
122
57
  }
123
- async getVaultTotalReturnsV2(params) {
58
+ async getVaultTotalReturns(params) {
124
59
  const { network, vaultAddress, userAddress } = params.path;
125
60
  return await this.fetchData(
126
61
  `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,
127
62
  params
128
63
  );
129
64
  }
130
- async getPositionsV2(params) {
65
+ async getPositions(params) {
131
66
  const { userAddress } = params.path;
132
67
  return await this.fetchData(
133
68
  `/v2/portfolio/positions/${userAddress}`,
@@ -141,17 +76,17 @@ var VaultsSdk = class {
141
76
  params
142
77
  );
143
78
  }
144
- async getVaultHolderEventsV2(params) {
79
+ async getVaultHolderEvents(params) {
145
80
  const { network, vaultAddress, userAddress } = params.path;
146
81
  return await this.fetchData(
147
82
  `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,
148
83
  params
149
84
  );
150
85
  }
151
- async getAllVaultsV2(params) {
86
+ async getAllVaults(params) {
152
87
  return await this.fetchData("/v2/detailed-vaults", params);
153
88
  }
154
- async getVaultV2(params) {
89
+ async getVault(params) {
155
90
  const { network, vaultAddress } = params.path;
156
91
  return await this.fetchData(
157
92
  `/v2/detailed-vaults/${network}/${vaultAddress}`,
@@ -165,14 +100,14 @@ var VaultsSdk = class {
165
100
  params
166
101
  );
167
102
  }
168
- async getActionsDetailsV2(params) {
103
+ async getTransactionsContext(params) {
169
104
  const { userAddress, network, vaultAddress } = params.path;
170
105
  return await this.fetchData(
171
106
  `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,
172
107
  params
173
108
  );
174
109
  }
175
- async getActionsV2(params) {
110
+ async getActions(params) {
176
111
  const { action, userAddress, network, vaultAddress } = params.path;
177
112
  return await this.fetchData(
178
113
  `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/utils/generateQueryParams.ts","../src/client.ts"],"sourcesContent":["export class HttpResponseError extends Error {}\n","export function generateQueryParams(\n queryParams: Record<string, string | number | boolean | null | undefined | bigint | string[]> | undefined\n): string {\n if (!queryParams || Object.keys(queryParams).length === 0) return ''\n\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(queryParams)) {\n if (value == null) continue\n\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item)\n }\n } else {\n params.set(key, value.toString())\n }\n }\n\n return `?${params}`\n}\n","import { HttpResponseError } from './errors'\nimport type { paths } from './types/openapi'\nimport type { paths as pathsV2 } from './types/openapiV2'\nimport { generateQueryParams } from './utils/generateQueryParams'\n\ninterface ConstructorOptions {\n apiKey: string\n}\n\ninterface InternalOptions {\n apiBaseUrl: string\n}\n\ntype Endpoint = keyof paths\ntype EndpointV2 = keyof pathsV2\n\ntype ExtractResponse<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\ntype ExtractResponseV2<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\n\ntype Response<T extends Endpoint> = ExtractResponse<paths[T]['get' | 'post']>\ntype ResponseV2<T extends EndpointV2> = ExtractResponseV2<pathsV2[T]['get' | 'post']>\n\ntype ExtractParams<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\ntype ExtractParamsV2<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\n\ntype Body<T extends Endpoint> = paths[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : paths[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype BodyV2<T extends EndpointV2> = pathsV2[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV2[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype Params<T extends Endpoint> = Body<T> extends undefined\n ? ExtractParams<paths[T]['get' | 'post']>\n : ExtractParams<paths[T]['get' | 'post']> & Body<T>\n\ntype ParamsV2<T extends EndpointV2> = BodyV2<T> extends undefined\n ? ExtractParamsV2<pathsV2[T]['get' | 'post']>\n : ExtractParamsV2<pathsV2[T]['get' | 'post']> & BodyV2<T>\n\ntype ActionEndpoint =\n | '/v1/transactions/vaults/deposit'\n | '/v1/transactions/vaults/redeem'\n | '/v1/transactions/vaults/request-redeem'\n | '/v1/transactions/vaults/claim-redeem'\n\nexport class VaultsSdk {\n private apiBaseUrl: string\n private apiKey: string\n\n constructor(options: ConstructorOptions)\n constructor(options: ConstructorOptions, internalOptions: InternalOptions)\n constructor(options: ConstructorOptions, internalOptions?: InternalOptions) {\n this.apiKey = options.apiKey\n this.apiBaseUrl = internalOptions?.apiBaseUrl ?? 'https://api.vaults.fyi'\n }\n\n private async fetchData<T extends Endpoint | EndpointV2>(\n endpoint: string,\n params?: T extends Endpoint ? Params<T> : T extends EndpointV2 ? ParamsV2<T> : never,\n method: 'POST' | 'GET' = 'GET'\n ): Promise<T extends Endpoint ? Response<T> : T extends EndpointV2 ? ResponseV2<T> : never> {\n const queryParams = generateQueryParams(params?.query)\n\n const body = params && 'body' in params ? params.body : undefined\n const stringifiedBody = body ? JSON.stringify(body) : undefined\n\n const response = await fetch(`${this.apiBaseUrl}${endpoint}${queryParams}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n },\n body: stringifiedBody,\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new HttpResponseError(error.message)\n }\n\n return response.json()\n }\n\n async bestDepositOption(params: Params<'/v1/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v1/portfolio/best-deposit-options/{userAddress}'>(\n `/v1/portfolio/best-deposit-options/${userAddress}`,\n params,\n 'POST'\n )\n }\n\n async getVault(params: Params<'/v1/vaults/{network}/{vaultAddress}/'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/'>(\n `/v1/vaults/${network}/${vaultAddress}/`,\n params\n )\n }\n\n async getDetailedVaults(params: Params<'/v1/detailed/vaults'>) {\n return await this.fetchData<'/v1/detailed/vaults'>('/v1/detailed/vaults', params)\n }\n\n async getVaultHolderEvents(params: Params<'/v1/vaults/{network}/{vaultAddress}/holder-events/{holder}'>) {\n const { network, vaultAddress, holder } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/holder-events/{holder}'>(\n `/v1/vaults/${network}/${vaultAddress}/holder-events/${holder}`,\n params\n )\n }\n\n async getVaultTotalReturns(params: Params<'/v1/vaults/{network}/{vaultAddress}/holder-total-returns/{holder}'>) {\n const { network, vaultAddress, holder } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/holder-total-returns/{holder}'>(\n `/v1/vaults/${network}/${vaultAddress}/holder-total-returns/${holder}`,\n params\n )\n }\n\n async getAllVaults(params?: Params<'/v1/detailed/vaults'>) {\n return await this.fetchData<'/v1/detailed/vaults'>('/v1/detailed/vaults', params)\n }\n\n async getVaultApy(params: Params<'/v1/vaults/{network}/{vaultAddress}/apy'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/apy'>(\n `/v1/vaults/${network}/${vaultAddress}/apy`,\n params\n )\n }\n\n async getHistoricalData(params: Params<'/v1/vaults/{network}/{vaultAddress}/historical-data'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v1/vaults/{network}/{vaultAddress}/historical-data'>(\n `/v1/vaults/${network}/${vaultAddress}/historical-data`,\n params\n )\n }\n\n async getActionsDetails(params: Params<'/v1/transactions/vaults/actions/details'>) {\n return await this.fetchData<'/v1/transactions/vaults/actions/details'>(\n '/v1/transactions/vaults/actions/details',\n params\n )\n }\n\n async getWalletBalances(params: Params<'/v1/portfolio/wallet-balances'>) {\n return await this.fetchData<'/v1/portfolio/wallet-balances'>('/v1/transactions/wallet-balances', params)\n }\n\n async getAllPositions(params: Params<'/v1/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v1/portfolio/positions/{userAddress}'>(`/v1/transactions/positions/${userAddress}`)\n }\n\n async getActions(endpoint: (ActionEndpoint | string) & {}, params: Params<ActionEndpoint>) {\n return await this.fetchData<ActionEndpoint>(endpoint, params)\n }\n\n async getBenchmarks() {\n return await this.fetchData<'/v1/benchmarks'>('/v1/benchmarks')\n }\n\n async getVaultHistoricalDataV2(params: ParamsV2<'/v2/historical/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/historical/{network}/{vaultAddress}'>(\n `/v2/historical/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getVaultTotalReturnsV2(params: ParamsV2<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getPositionsV2(params: ParamsV2<'/v2/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/positions/{userAddress}'>(\n `/v2/portfolio/positions/${userAddress}`,\n params\n )\n }\n\n async getDepositOptions(params: ParamsV2<'/v2/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/best-deposit-options/{userAddress}'>(\n `/v2/portfolio/best-deposit-options/${userAddress}`,\n params\n )\n }\n\n async getVaultHolderEventsV2(params: ParamsV2<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getAllVaultsV2(params?: ParamsV2<'/v2/detailed-vaults'>) {\n return await this.fetchData<'/v2/detailed-vaults'>('/v2/detailed-vaults', params)\n }\n\n async getVaultV2(params: ParamsV2<'/v2/detailed-vaults/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/detailed-vaults/{network}/{vaultAddress}'>(\n `/v2/detailed-vaults/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getIdleAssets(params: ParamsV2<'/v2/portfolio/idle-assets/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/idle-assets/{userAddress}'>(\n `/v2/portfolio/idle-assets/${userAddress}`,\n params\n )\n }\n\n async getActionsDetailsV2(params: ParamsV2<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>) {\n const { userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getActionsV2(params: ParamsV2<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>) {\n const { action, userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/errors.ts","../src/utils/generateQueryParams.ts","../src/client.ts"],"sourcesContent":["export class HttpResponseError extends Error {}\n","export function generateQueryParams(\n queryParams: Record<string, string | number | boolean | null | undefined | bigint | string[]> | undefined\n): string {\n if (!queryParams || Object.keys(queryParams).length === 0) return ''\n\n const params = new URLSearchParams()\n for (const [key, value] of Object.entries(queryParams)) {\n if (value == null) continue\n\n if (Array.isArray(value)) {\n for (const item of value) {\n params.append(key, item)\n }\n } else {\n params.set(key, value.toString())\n }\n }\n\n return `?${params}`\n}\n","import { HttpResponseError } from './errors'\nimport type { paths as pathsV1 } from './types/openapi'\nimport type { paths as pathsV2 } from './types/openapiV2'\nimport { generateQueryParams } from './utils/generateQueryParams'\n\ninterface ConstructorOptions {\n apiKey: string\n}\n\ninterface InternalOptions {\n apiBaseUrl: string\n}\n\ntype EndpointV1 = keyof pathsV1\ntype EndpointV2 = keyof pathsV2\n\ntype ExtractResponseV1<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\ntype ExtractResponseV2<T> = T extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : never\n\ntype ResponseV1<T extends EndpointV1> = ExtractResponseV1<pathsV1[T]['get' | 'post']>\ntype ResponseV2<T extends EndpointV2> = ExtractResponseV2<pathsV2[T]['get' | 'post']>\n\ntype ExtractParamsV1<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\ntype ExtractParamsV2<T> = T extends { parameters: infer P extends { path?: any; query?: any } }\n ? Pick<P, 'path' | 'query'>\n : never\n\ntype BodyV1<T extends EndpointV1> = pathsV1[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV1[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype BodyV2<T extends EndpointV2> = pathsV2[T]['post'] extends {\n requestBody: { content: { 'application/json': infer R } }\n}\n ? { body: R }\n : pathsV2[T]['post'] extends {\n requestBody?: { content: { 'application/json': infer R } }\n }\n ? { body?: R }\n : undefined\n\ntype ParamsV1<T extends EndpointV1> = BodyV1<T> extends undefined\n ? ExtractParamsV1<pathsV1[T]['get' | 'post']>\n : ExtractParamsV1<pathsV1[T]['get' | 'post']> & BodyV1<T>\n\ntype ParamsV2<T extends EndpointV2> = BodyV2<T> extends undefined\n ? ExtractParamsV2<pathsV2[T]['get' | 'post']>\n : ExtractParamsV2<pathsV2[T]['get' | 'post']> & BodyV2<T>\n\nexport class VaultsSdk {\n private apiBaseUrl: string\n private apiKey: string\n\n constructor(options: ConstructorOptions)\n constructor(options: ConstructorOptions, internalOptions: InternalOptions)\n constructor(options: ConstructorOptions, internalOptions?: InternalOptions) {\n this.apiKey = options.apiKey\n this.apiBaseUrl = internalOptions?.apiBaseUrl ?? 'https://api.vaults.fyi'\n }\n\n private async fetchData<T extends EndpointV1 | EndpointV2>(\n endpoint: string,\n params?: T extends EndpointV1 ? ParamsV1<T> : T extends EndpointV2 ? ParamsV2<T> : never,\n method: 'POST' | 'GET' = 'GET'\n ): Promise<T extends EndpointV1 ? ResponseV1<T> : T extends EndpointV2 ? ResponseV2<T> : never> {\n const queryParams = generateQueryParams(params?.query)\n\n const body = params && 'body' in params ? params.body : undefined\n const stringifiedBody = body ? JSON.stringify(body) : undefined\n\n const response = await fetch(`${this.apiBaseUrl}${endpoint}${queryParams}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n },\n body: stringifiedBody,\n })\n\n if (!response.ok) {\n const error = await response.json()\n throw new HttpResponseError(error.message)\n }\n\n return response.json()\n }\n\n async getBenchmarks() {\n return await this.fetchData<'/v1/benchmarks'>('/v1/benchmarks')\n }\n\n async getVaultHistoricalData(params: ParamsV2<'/v2/historical/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/historical/{network}/{vaultAddress}'>(\n `/v2/historical/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getVaultTotalReturns(params: ParamsV2<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/returns/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/returns/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getPositions(params: ParamsV2<'/v2/portfolio/positions/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/positions/{userAddress}'>(\n `/v2/portfolio/positions/${userAddress}`,\n params\n )\n }\n\n async getDepositOptions(params: ParamsV2<'/v2/portfolio/best-deposit-options/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/best-deposit-options/{userAddress}'>(\n `/v2/portfolio/best-deposit-options/${userAddress}`,\n params\n )\n }\n\n async getVaultHolderEvents(params: ParamsV2<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>) {\n const { network, vaultAddress, userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/events/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/portfolio/events/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getAllVaults(params?: ParamsV2<'/v2/detailed-vaults'>) {\n return await this.fetchData<'/v2/detailed-vaults'>('/v2/detailed-vaults', params)\n }\n\n async getVault(params: ParamsV2<'/v2/detailed-vaults/{network}/{vaultAddress}'>) {\n const { network, vaultAddress } = params.path\n return await this.fetchData<'/v2/detailed-vaults/{network}/{vaultAddress}'>(\n `/v2/detailed-vaults/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getIdleAssets(params: ParamsV2<'/v2/portfolio/idle-assets/{userAddress}'>) {\n const { userAddress } = params.path\n return await this.fetchData<'/v2/portfolio/idle-assets/{userAddress}'>(\n `/v2/portfolio/idle-assets/${userAddress}`,\n params\n )\n }\n\n async getTransactionsContext(params: ParamsV2<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>) {\n const { userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/context/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/context/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n\n async getActions(params: ParamsV2<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>) {\n const { action, userAddress, network, vaultAddress } = params.path\n return await this.fetchData<'/v2/transactions/{action}/{userAddress}/{network}/{vaultAddress}'>(\n `/v2/transactions/${action}/${userAddress}/${network}/${vaultAddress}`,\n params\n )\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaultsfyi/sdk",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "An SDK for interacting with the Vaults.fyi API",
5
5
  "main": "./dist/client.js",
6
6
  "module": "./dist/client.mjs",
@@ -13,7 +13,8 @@
13
13
  "typecheck": "tsc --noEmit",
14
14
  "lint": "pnpm typecheck && biome check .",
15
15
  "lint:fix": "biome check . --write",
16
- "build": "tsup ./src/client.ts --format esm,cjs --dts --sourcemap"
16
+ "build": "tsup ./src/client.ts --format esm,cjs --dts --sourcemap",
17
+ "publishPackage": "pnpm build && npm publish --access public"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@biomejs/biome": "catalog:",