@carrot-protocol/boost-http-client 0.2.0 → 0.2.1-data-fixes-dev-2028bb6
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/index.d.ts +4 -4
- package/dist/index.js +38 -43
- package/dist/types.d.ts +2 -8
- package/makefile +2 -0
- package/package.json +3 -2
- package/src/index.ts +57 -21
- package/src/types.ts +2 -10
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnchorProvider, web3 } from "@coral-xyz/anchor";
|
|
2
|
-
import {
|
|
2
|
+
import { GetBankResponse, GetUserResponse, GetGroupResponse } from "./types";
|
|
3
3
|
export * from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* HTTP Client for Carrot Boost API
|
|
@@ -43,17 +43,17 @@ export declare class Client {
|
|
|
43
43
|
* @param request Deposit leverage request parameters
|
|
44
44
|
* @returns Deposit leverage operation result
|
|
45
45
|
*/
|
|
46
|
-
depositLeverage(
|
|
46
|
+
depositLeverage(selectedTokenMint: web3.PublicKey, uiAmount: number, leverage: number, slippageBps: number): Promise<string>;
|
|
47
47
|
/**
|
|
48
48
|
* Adjust the leverage of an existing position
|
|
49
49
|
* @param request Adjust leverage request parameters
|
|
50
50
|
* @returns Adjust leverage operation result
|
|
51
51
|
*/
|
|
52
|
-
adjustLeverage(
|
|
52
|
+
adjustLeverage(leverage: number, slippageBps: number): Promise<any>;
|
|
53
53
|
/**
|
|
54
54
|
* Withdraw from or close a leveraged position
|
|
55
55
|
* @param request Withdraw leverage request parameters
|
|
56
56
|
* @returns Withdraw leverage operation result
|
|
57
57
|
*/
|
|
58
|
-
withdrawLeverage(
|
|
58
|
+
withdrawLeverage(selectedTokenMint: web3.PublicKey, uiAmount: number, slippageBps: number, withdrawAll: boolean): Promise<any>;
|
|
59
59
|
}
|
package/dist/index.js
CHANGED
|
@@ -10,28 +10,6 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
15
|
};
|
|
@@ -40,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
40
18
|
};
|
|
41
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
20
|
exports.Client = void 0;
|
|
43
|
-
const axios_1 =
|
|
21
|
+
const axios_1 = __importDefault(require("axios"));
|
|
44
22
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
45
23
|
const bs58_1 = __importDefault(require("bs58"));
|
|
46
24
|
// Re-export types
|
|
@@ -193,8 +171,15 @@ class Client {
|
|
|
193
171
|
* @param request Deposit leverage request parameters
|
|
194
172
|
* @returns Deposit leverage operation result
|
|
195
173
|
*/
|
|
196
|
-
async depositLeverage(
|
|
197
|
-
const
|
|
174
|
+
async depositLeverage(selectedTokenMint, uiAmount, leverage, slippageBps) {
|
|
175
|
+
const req = {
|
|
176
|
+
owner: this.address(),
|
|
177
|
+
selectedTokenMint,
|
|
178
|
+
depositAmountUi: uiAmount,
|
|
179
|
+
leverage,
|
|
180
|
+
slippageBps,
|
|
181
|
+
};
|
|
182
|
+
const body = await handleApiCall(() => this.http.post("leverage/deposit", JSON.stringify(req)));
|
|
198
183
|
const depositLeverageResponse = JSON.parse(body);
|
|
199
184
|
const txSig = await this.send(depositLeverageResponse.unsignedBase64Tx);
|
|
200
185
|
return txSig;
|
|
@@ -204,8 +189,13 @@ class Client {
|
|
|
204
189
|
* @param request Adjust leverage request parameters
|
|
205
190
|
* @returns Adjust leverage operation result
|
|
206
191
|
*/
|
|
207
|
-
async adjustLeverage(
|
|
208
|
-
const
|
|
192
|
+
async adjustLeverage(leverage, slippageBps) {
|
|
193
|
+
const req = {
|
|
194
|
+
owner: this.address(),
|
|
195
|
+
leverage,
|
|
196
|
+
slippageBps,
|
|
197
|
+
};
|
|
198
|
+
const body = await handleApiCall(() => this.http.post("leverage/adjust", JSON.stringify(req)));
|
|
209
199
|
const adjustLeverageResponse = JSON.parse(body);
|
|
210
200
|
const txSig = await this.send(adjustLeverageResponse.unsignedBase64Tx);
|
|
211
201
|
return txSig;
|
|
@@ -215,8 +205,15 @@ class Client {
|
|
|
215
205
|
* @param request Withdraw leverage request parameters
|
|
216
206
|
* @returns Withdraw leverage operation result
|
|
217
207
|
*/
|
|
218
|
-
async withdrawLeverage(
|
|
219
|
-
const
|
|
208
|
+
async withdrawLeverage(selectedTokenMint, uiAmount, slippageBps, withdrawAll) {
|
|
209
|
+
const req = {
|
|
210
|
+
owner: this.address(),
|
|
211
|
+
selectedTokenMint,
|
|
212
|
+
withdrawAmountUi: uiAmount,
|
|
213
|
+
slippageBps,
|
|
214
|
+
withdrawAll,
|
|
215
|
+
};
|
|
216
|
+
const body = await handleApiCall(() => this.http.post("leverage/withdraw", JSON.stringify(req)));
|
|
220
217
|
const withdrawLeverageResponse = JSON.parse(body);
|
|
221
218
|
const txSig = await this.send(withdrawLeverageResponse.unsignedBase64Tx);
|
|
222
219
|
return txSig;
|
|
@@ -232,23 +229,21 @@ function handleStatusCode(statusCode) {
|
|
|
232
229
|
}
|
|
233
230
|
}
|
|
234
231
|
// Helper function to handle API calls
|
|
235
|
-
async function handleApiCall(
|
|
232
|
+
async function handleApiCall(call) {
|
|
236
233
|
try {
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
return JSON.stringify(response.data);
|
|
234
|
+
const { data } = await call();
|
|
235
|
+
return JSON.stringify(data);
|
|
240
236
|
}
|
|
241
|
-
catch (
|
|
242
|
-
if (
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
throw new Error(JSON.stringify(simplifiedError));
|
|
237
|
+
catch (e) {
|
|
238
|
+
if (axios_1.default.isAxiosError(e)) {
|
|
239
|
+
const res = e.response;
|
|
240
|
+
if (res && typeof res.data === "object") {
|
|
241
|
+
const payload = res.data;
|
|
242
|
+
throw new Error(`${payload.error}${payload.details ? ` ${payload.details}` : ""}`);
|
|
243
|
+
}
|
|
244
|
+
throw new Error(`${e.message}`);
|
|
250
245
|
}
|
|
251
|
-
throw
|
|
246
|
+
throw e;
|
|
252
247
|
}
|
|
253
248
|
}
|
|
254
249
|
function getDummyProvider() {
|
package/dist/types.d.ts
CHANGED
|
@@ -2,19 +2,13 @@ import { BN, web3 } from "@coral-xyz/anchor";
|
|
|
2
2
|
export interface SendRequest {
|
|
3
3
|
txns: string[];
|
|
4
4
|
}
|
|
5
|
-
export interface CreateObligationRequest {
|
|
6
|
-
owner: web3.PublicKey;
|
|
7
|
-
}
|
|
8
|
-
export interface CreateObligationResponse {
|
|
9
|
-
unsignedBase64Tx: string;
|
|
10
|
-
}
|
|
11
5
|
/**
|
|
12
6
|
* Request to deposit collateral and create a leveraged position
|
|
13
7
|
*/
|
|
14
8
|
export interface DepositLeverageRequest {
|
|
15
9
|
owner: web3.PublicKey;
|
|
16
10
|
selectedTokenMint: web3.PublicKey;
|
|
17
|
-
|
|
11
|
+
depositAmountUi: number;
|
|
18
12
|
leverage: number;
|
|
19
13
|
slippageBps: number;
|
|
20
14
|
}
|
|
@@ -44,7 +38,7 @@ export interface AdjustLeverageResponse {
|
|
|
44
38
|
export interface WithdrawLeverageRequest {
|
|
45
39
|
owner: web3.PublicKey;
|
|
46
40
|
selectedTokenMint: web3.PublicKey;
|
|
47
|
-
|
|
41
|
+
withdrawAmountUi: number;
|
|
48
42
|
slippageBps: number;
|
|
49
43
|
withdrawAll: boolean;
|
|
50
44
|
}
|
package/makefile
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carrot-protocol/boost-http-client",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1-data-fixes-dev-2028bb6",
|
|
4
4
|
"description": "HTTP client for Carrot Boost API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"build": "npm run clean && npm i && tsc && npm pack",
|
|
10
10
|
"build:dirty": "npm i && tsc && npm pack",
|
|
11
11
|
"fmt:check": "prettier --check src/",
|
|
12
|
-
"fmt": "prettier --write src/"
|
|
12
|
+
"fmt": "prettier --write src/",
|
|
13
|
+
"version-check": "current_version=$(node -p -e \"require('./package.json').version\") && if npm view @carrot-protocol/boost-http-client@$current_version > /dev/null 2>&1; then echo \"Version $current_version already exists. Please bump it in package.json\"; exit 1; fi"
|
|
13
14
|
},
|
|
14
15
|
"dependencies": {
|
|
15
16
|
"@coral-xyz/anchor": "^0.29.0",
|
package/src/index.ts
CHANGED
|
@@ -215,9 +215,21 @@ export class Client {
|
|
|
215
215
|
* @param request Deposit leverage request parameters
|
|
216
216
|
* @returns Deposit leverage operation result
|
|
217
217
|
*/
|
|
218
|
-
async depositLeverage(
|
|
218
|
+
async depositLeverage(
|
|
219
|
+
selectedTokenMint: web3.PublicKey,
|
|
220
|
+
uiAmount: number,
|
|
221
|
+
leverage: number,
|
|
222
|
+
slippageBps: number,
|
|
223
|
+
): Promise<string> {
|
|
224
|
+
const req: DepositLeverageRequest = {
|
|
225
|
+
owner: this.address(),
|
|
226
|
+
selectedTokenMint,
|
|
227
|
+
depositAmountUi: uiAmount,
|
|
228
|
+
leverage,
|
|
229
|
+
slippageBps,
|
|
230
|
+
};
|
|
219
231
|
const body = await handleApiCall(() =>
|
|
220
|
-
this.http.post("leverage/deposit", JSON.stringify(
|
|
232
|
+
this.http.post("leverage/deposit", JSON.stringify(req)),
|
|
221
233
|
);
|
|
222
234
|
|
|
223
235
|
const depositLeverageResponse: DepositLeverageResponse = JSON.parse(body);
|
|
@@ -232,9 +244,14 @@ export class Client {
|
|
|
232
244
|
* @param request Adjust leverage request parameters
|
|
233
245
|
* @returns Adjust leverage operation result
|
|
234
246
|
*/
|
|
235
|
-
async adjustLeverage(
|
|
247
|
+
async adjustLeverage(leverage: number, slippageBps: number): Promise<any> {
|
|
248
|
+
const req: AdjustLeverageRequest = {
|
|
249
|
+
owner: this.address(),
|
|
250
|
+
leverage,
|
|
251
|
+
slippageBps,
|
|
252
|
+
};
|
|
236
253
|
const body = await handleApiCall(() =>
|
|
237
|
-
this.http.post("leverage/adjust", JSON.stringify(
|
|
254
|
+
this.http.post("leverage/adjust", JSON.stringify(req)),
|
|
238
255
|
);
|
|
239
256
|
|
|
240
257
|
const adjustLeverageResponse: AdjustLeverageResponse = JSON.parse(body);
|
|
@@ -249,9 +266,21 @@ export class Client {
|
|
|
249
266
|
* @param request Withdraw leverage request parameters
|
|
250
267
|
* @returns Withdraw leverage operation result
|
|
251
268
|
*/
|
|
252
|
-
async withdrawLeverage(
|
|
269
|
+
async withdrawLeverage(
|
|
270
|
+
selectedTokenMint: web3.PublicKey,
|
|
271
|
+
uiAmount: number,
|
|
272
|
+
slippageBps: number,
|
|
273
|
+
withdrawAll: boolean,
|
|
274
|
+
): Promise<any> {
|
|
275
|
+
const req: WithdrawLeverageRequest = {
|
|
276
|
+
owner: this.address(),
|
|
277
|
+
selectedTokenMint,
|
|
278
|
+
withdrawAmountUi: uiAmount,
|
|
279
|
+
slippageBps,
|
|
280
|
+
withdrawAll,
|
|
281
|
+
};
|
|
253
282
|
const body = await handleApiCall(() =>
|
|
254
|
-
this.http.post("leverage/withdraw", JSON.stringify(
|
|
283
|
+
this.http.post("leverage/withdraw", JSON.stringify(req)),
|
|
255
284
|
);
|
|
256
285
|
|
|
257
286
|
const withdrawLeverageResponse: WithdrawLeverageResponse = JSON.parse(body);
|
|
@@ -262,6 +291,13 @@ export class Client {
|
|
|
262
291
|
}
|
|
263
292
|
}
|
|
264
293
|
|
|
294
|
+
type ApiErrorPayload = {
|
|
295
|
+
error: string;
|
|
296
|
+
details?: unknown;
|
|
297
|
+
path: string;
|
|
298
|
+
timestamp: string;
|
|
299
|
+
};
|
|
300
|
+
|
|
265
301
|
function handleStatusCode(statusCode: number): void {
|
|
266
302
|
switch (statusCode) {
|
|
267
303
|
case 200:
|
|
@@ -273,23 +309,23 @@ function handleStatusCode(statusCode: number): void {
|
|
|
273
309
|
|
|
274
310
|
// Helper function to handle API calls
|
|
275
311
|
async function handleApiCall<T>(
|
|
276
|
-
|
|
277
|
-
): Promise<
|
|
312
|
+
call: () => Promise<AxiosResponse<T>>,
|
|
313
|
+
): Promise<string> {
|
|
278
314
|
try {
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
throw new Error(
|
|
315
|
+
const { data } = await call();
|
|
316
|
+
return JSON.stringify(data);
|
|
317
|
+
} catch (e) {
|
|
318
|
+
if (axios.isAxiosError(e)) {
|
|
319
|
+
const res = e.response;
|
|
320
|
+
if (res && typeof res.data === "object") {
|
|
321
|
+
const payload = res.data as ApiErrorPayload;
|
|
322
|
+
throw new Error(
|
|
323
|
+
`${payload.error}${payload.details ? ` ${payload.details}` : ""}`,
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
throw new Error(`${e.message}`);
|
|
291
327
|
}
|
|
292
|
-
throw
|
|
328
|
+
throw e;
|
|
293
329
|
}
|
|
294
330
|
}
|
|
295
331
|
|
package/src/types.ts
CHANGED
|
@@ -6,21 +6,13 @@ export interface SendRequest {
|
|
|
6
6
|
txns: string[];
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export interface CreateObligationRequest {
|
|
10
|
-
owner: web3.PublicKey;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface CreateObligationResponse {
|
|
14
|
-
unsignedBase64Tx: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
9
|
/**
|
|
18
10
|
* Request to deposit collateral and create a leveraged position
|
|
19
11
|
*/
|
|
20
12
|
export interface DepositLeverageRequest {
|
|
21
13
|
owner: web3.PublicKey;
|
|
22
14
|
selectedTokenMint: web3.PublicKey;
|
|
23
|
-
|
|
15
|
+
depositAmountUi: number;
|
|
24
16
|
leverage: number;
|
|
25
17
|
slippageBps: number;
|
|
26
18
|
}
|
|
@@ -54,7 +46,7 @@ export interface AdjustLeverageResponse {
|
|
|
54
46
|
export interface WithdrawLeverageRequest {
|
|
55
47
|
owner: web3.PublicKey;
|
|
56
48
|
selectedTokenMint: web3.PublicKey;
|
|
57
|
-
|
|
49
|
+
withdrawAmountUi: number;
|
|
58
50
|
slippageBps: number;
|
|
59
51
|
withdrawAll: boolean;
|
|
60
52
|
}
|