@1stdex/first-sdk 1.0.63 → 1.0.64
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/cjs/calls/index.js +2 -1
- package/dist/cjs/calls/index.js.map +1 -1
- package/dist/cjs/calls/market/market.js +27 -1
- package/dist/cjs/calls/market/market.js.map +1 -1
- package/dist/esm/calls/index.js +1 -1
- package/dist/esm/calls/index.js.map +1 -1
- package/dist/esm/calls/market/market.js +28 -0
- package/dist/esm/calls/market/market.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/calls/index.d.ts +1 -1
- package/dist/types/calls/index.d.ts.map +1 -1
- package/dist/types/calls/market/market.d.ts +8 -0
- package/dist/types/calls/market/market.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/calls/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.prepareMarketOrderWithSetup = exports.prepareLimitOrderWithSetup = exports.withdrawFromVault = exports.depositToVault = exports.removeVault = exports.setVault = exports.approveAllForMarket = exports.setTokenAllowances = exports.setApprovalOfOpenOrdersForAll = exports.cancelOrders = exports.cancelOrder = exports.claimOrders = exports.claimOrder = exports.marketOrder = exports.limitOrder = exports.placeMarketMakingQuotes = exports.openMarket = void 0;
|
|
3
|
+
exports.prepareMarketOrderWithSetup = exports.prepareLimitOrderWithSetup = exports.withdrawFromVault = exports.depositToVault = exports.removeVault = exports.setVault = exports.approveAllForMarket = exports.setTokenAllowances = exports.setApprovalOfOpenOrdersForAll = exports.cancelOrders = exports.cancelOrder = exports.claimOrders = exports.claimOrder = exports.InsufficientLiquidityError = exports.marketOrder = exports.limitOrder = exports.placeMarketMakingQuotes = exports.openMarket = void 0;
|
|
4
4
|
var open_1 = require("./market/open");
|
|
5
5
|
Object.defineProperty(exports, "openMarket", { enumerable: true, get: function () { return open_1.openMarket; } });
|
|
6
6
|
var make_1 = require("./market/make");
|
|
@@ -9,6 +9,7 @@ var limit_1 = require("./market/limit");
|
|
|
9
9
|
Object.defineProperty(exports, "limitOrder", { enumerable: true, get: function () { return limit_1.limitOrder; } });
|
|
10
10
|
var market_1 = require("./market/market");
|
|
11
11
|
Object.defineProperty(exports, "marketOrder", { enumerable: true, get: function () { return market_1.marketOrder; } });
|
|
12
|
+
Object.defineProperty(exports, "InsufficientLiquidityError", { enumerable: true, get: function () { return market_1.InsufficientLiquidityError; } });
|
|
12
13
|
var claim_1 = require("./market/claim");
|
|
13
14
|
Object.defineProperty(exports, "claimOrder", { enumerable: true, get: function () { return claim_1.claimOrder; } });
|
|
14
15
|
Object.defineProperty(exports, "claimOrders", { enumerable: true, get: function () { return claim_1.claimOrders; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calls/index.ts"],"names":[],"mappings":";;;AAAA,sCAA2C;AAAlC,kGAAA,UAAU,OAAA;AACnB,sCAAwD;AAA/C,+GAAA,uBAAuB,OAAA;AAChC,wCAA4C;AAAnC,mGAAA,UAAU,OAAA;AACnB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calls/index.ts"],"names":[],"mappings":";;;AAAA,sCAA2C;AAAlC,kGAAA,UAAU,OAAA;AACnB,sCAAwD;AAA/C,+GAAA,uBAAuB,OAAA;AAChC,wCAA4C;AAAnC,mGAAA,UAAU,OAAA;AACnB,0CAA0E;AAAjE,qGAAA,WAAW,OAAA;AAAE,oHAAA,0BAA0B,OAAA;AAChD,wCAAyD;AAAhD,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAChC,0CAA4D;AAAnD,qGAAA,WAAW,OAAA;AAAE,sGAAA,YAAY,OAAA;AAElC,oDAAsE;AAA7D,2HAAA,6BAA6B,OAAA;AACtC,0CAAsD;AAA7C,2GAAA,kBAAkB,OAAA;AAC3B,4CAAwD;AAA/C,6GAAA,mBAAmB,OAAA;AAE5B,iCAKiB;AAJf,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,uGAAA,cAAc,OAAA;AACd,0GAAA,iBAAiB,OAAA;AAGnB,iCAGiB;AAFf,mHAAA,0BAA0B,OAAA;AAC1B,oHAAA,2BAA2B,OAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.marketOrder = void 0;
|
|
3
|
+
exports.marketOrder = exports.InsufficientLiquidityError = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const chain_1 = require("../../constants/chain-configs/chain");
|
|
6
6
|
const apis_1 = require("../../entities/market/apis");
|
|
@@ -10,6 +10,26 @@ const addresses_1 = require("../../constants/chain-configs/addresses");
|
|
|
10
10
|
const controller_abi_1 = require("../../constants/abis/core/controller-abi");
|
|
11
11
|
const bigint_1 = require("../../utils/bigint");
|
|
12
12
|
const time_1 = require("../../utils/time");
|
|
13
|
+
class InsufficientLiquidityError extends Error {
|
|
14
|
+
constructor(message, tokenSymbol, bookSide) {
|
|
15
|
+
super(message);
|
|
16
|
+
Object.defineProperty(this, "tokenSymbol", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: tokenSymbol
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "bookSide", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: bookSide
|
|
27
|
+
});
|
|
28
|
+
this.name = 'InsufficientLiquidityError';
|
|
29
|
+
Object.setPrototypeOf(this, InsufficientLiquidityError.prototype);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.InsufficientLiquidityError = InsufficientLiquidityError;
|
|
13
33
|
const marketOrder = async ({ chainId, userAddress, inputToken, outputToken, amountIn, amountOut, options, }) => {
|
|
14
34
|
if (!amountIn && !amountOut) {
|
|
15
35
|
throw new Error('Either amountIn or amountOut must be provided');
|
|
@@ -50,6 +70,9 @@ const marketOrder = async ({ chainId, userAddress, inputToken, outputToken, amou
|
|
|
50
70
|
...options,
|
|
51
71
|
},
|
|
52
72
|
});
|
|
73
|
+
if (Number(takenAmount) === 0) {
|
|
74
|
+
throw new InsufficientLiquidityError(`Insufficient liquidity: No ${outputCurrency.symbol} available to fulfill this order. The ${isTakingBid ? 'bid' : 'ask'} book is empty.`, outputCurrency.symbol, isTakingBid ? 'bid' : 'ask');
|
|
75
|
+
}
|
|
53
76
|
const baseAmount = (0, viem_1.parseUnits)(amountIn, inputCurrency.decimals);
|
|
54
77
|
return {
|
|
55
78
|
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
@@ -106,6 +129,9 @@ const marketOrder = async ({ chainId, userAddress, inputToken, outputToken, amou
|
|
|
106
129
|
...options,
|
|
107
130
|
},
|
|
108
131
|
});
|
|
132
|
+
if (Number(spentAmount) === 0 || Number(takenAmount) === 0) {
|
|
133
|
+
throw new InsufficientLiquidityError(`Insufficient liquidity: Cannot take ${amountOut} ${outputCurrency.symbol}. The ${isTakingBid ? 'bid' : 'ask'} book has insufficient depth.`, outputCurrency.symbol, isTakingBid ? 'bid' : 'ask');
|
|
134
|
+
}
|
|
109
135
|
const quoteAmount = (0, viem_1.parseUnits)(amountOut, outputCurrency.decimals);
|
|
110
136
|
const baseAmount = (0, viem_1.parseUnits)(spentAmount, inputCurrency.decimals);
|
|
111
137
|
const maxBaseAmount = options?.slippage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../../src/calls/market/market.ts"],"names":[],"mappings":";;;AAAA,+BAMc;AAEd,+DAA2E;AAM3E,qDAAyD;AACzD,uCAAkE;AAClE,qEAAiE;AACjE,uEAA6E;AAC7E,6EAA0E;AAC1E,+CAAkD;AAClD,2CAAiE;
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../../src/calls/market/market.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/calls/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { openMarket } from './market/open';
|
|
2
2
|
export { placeMarketMakingQuotes } from './market/make';
|
|
3
3
|
export { limitOrder } from './market/limit';
|
|
4
|
-
export { marketOrder } from './market/market';
|
|
4
|
+
export { marketOrder, InsufficientLiquidityError } from './market/market';
|
|
5
5
|
export { claimOrder, claimOrders } from './market/claim';
|
|
6
6
|
export { cancelOrder, cancelOrders } from './market/cancel';
|
|
7
7
|
export { setApprovalOfOpenOrdersForAll } from './approval/open-order';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/calls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,SAAS,CAAC"}
|
|
@@ -7,6 +7,28 @@ import { CONTRACT_ADDRESSES } from '../../constants/chain-configs/addresses';
|
|
|
7
7
|
import { CONTROLLER_ABI } from '../../constants/abis/core/controller-abi';
|
|
8
8
|
import { applyPercent } from '../../utils/bigint';
|
|
9
9
|
import { getDeadlineTimestampInSeconds } from '../../utils/time';
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when there is insufficient liquidity to fulfill a market order.
|
|
12
|
+
*/
|
|
13
|
+
export class InsufficientLiquidityError extends Error {
|
|
14
|
+
constructor(message, tokenSymbol, bookSide) {
|
|
15
|
+
super(message);
|
|
16
|
+
Object.defineProperty(this, "tokenSymbol", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: tokenSymbol
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "bookSide", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: bookSide
|
|
27
|
+
});
|
|
28
|
+
this.name = 'InsufficientLiquidityError';
|
|
29
|
+
Object.setPrototypeOf(this, InsufficientLiquidityError.prototype);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
10
32
|
/**
|
|
11
33
|
* Executes a market order on the specified chain for trading tokens.
|
|
12
34
|
* If only `amountIn` is provided, spend the specified amount of input tokens.
|
|
@@ -80,6 +102,9 @@ export const marketOrder = async ({ chainId, userAddress, inputToken, outputToke
|
|
|
80
102
|
// don't need to check limit price for market order
|
|
81
103
|
},
|
|
82
104
|
});
|
|
105
|
+
if (Number(takenAmount) === 0) {
|
|
106
|
+
throw new InsufficientLiquidityError(`Insufficient liquidity: No ${outputCurrency.symbol} available to fulfill this order. The ${isTakingBid ? 'bid' : 'ask'} book is empty.`, outputCurrency.symbol, isTakingBid ? 'bid' : 'ask');
|
|
107
|
+
}
|
|
83
108
|
const baseAmount = parseUnits(amountIn, inputCurrency.decimals);
|
|
84
109
|
return {
|
|
85
110
|
transaction: await buildTransaction(publicClient, {
|
|
@@ -137,6 +162,9 @@ export const marketOrder = async ({ chainId, userAddress, inputToken, outputToke
|
|
|
137
162
|
// don't need to check limit price for market order
|
|
138
163
|
},
|
|
139
164
|
});
|
|
165
|
+
if (Number(spentAmount) === 0 || Number(takenAmount) === 0) {
|
|
166
|
+
throw new InsufficientLiquidityError(`Insufficient liquidity: Cannot take ${amountOut} ${outputCurrency.symbol}. The ${isTakingBid ? 'bid' : 'ask'} book has insufficient depth.`, outputCurrency.symbol, isTakingBid ? 'bid' : 'ask');
|
|
167
|
+
}
|
|
140
168
|
const quoteAmount = parseUnits(amountOut, outputCurrency.decimals);
|
|
141
169
|
const baseAmount = parseUnits(spentAmount, inputCurrency.decimals);
|
|
142
170
|
const maxBaseAmount = options?.slippage
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../../src/calls/market/market.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../../src/calls/market/market.ts"],"names":[],"mappings":"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"}
|