@1stdex/first-sdk 1.0.5 → 1.0.7
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/approval/order.js +2 -10
- package/dist/cjs/calls/approval/order.js.map +1 -1
- package/dist/cjs/calls/approval/token.js +3 -17
- package/dist/cjs/calls/approval/token.js.map +1 -1
- package/dist/cjs/views/index.js +6 -1
- package/dist/cjs/views/index.js.map +1 -1
- package/dist/cjs/views/setup.js +160 -0
- package/dist/cjs/views/setup.js.map +1 -0
- package/dist/cjs/views/vault.js +5 -3
- package/dist/cjs/views/vault.js.map +1 -1
- package/dist/esm/calls/approval/order.js +2 -10
- package/dist/esm/calls/approval/order.js.map +1 -1
- package/dist/esm/calls/approval/token.js +3 -17
- package/dist/esm/calls/approval/token.js.map +1 -1
- package/dist/esm/views/index.js +1 -0
- package/dist/esm/views/index.js.map +1 -1
- package/dist/esm/views/setup.js +235 -0
- package/dist/esm/views/setup.js.map +1 -0
- package/dist/esm/views/vault.js +6 -4
- package/dist/esm/views/vault.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/calls/approval/order.d.ts.map +1 -1
- package/dist/types/calls/approval/token.d.ts.map +1 -1
- package/dist/types/views/index.d.ts +1 -0
- package/dist/types/views/index.d.ts.map +1 -1
- package/dist/types/views/setup.d.ts +133 -0
- package/dist/types/views/setup.d.ts.map +1 -0
- package/dist/types/views/vault.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,16 +17,8 @@ const setOrderOperatorApproval = async ({ chainId, userAddress, operator, approv
|
|
|
17
17
|
abi: [
|
|
18
18
|
{
|
|
19
19
|
inputs: [
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
name: 'operator',
|
|
23
|
-
type: 'address',
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
internalType: 'bool',
|
|
27
|
-
name: 'approved',
|
|
28
|
-
type: 'bool',
|
|
29
|
-
},
|
|
20
|
+
{ internalType: 'address', name: 'operator', type: 'address' },
|
|
21
|
+
{ internalType: 'bool', name: 'approved', type: 'bool' },
|
|
30
22
|
],
|
|
31
23
|
name: 'setOrderOperator',
|
|
32
24
|
outputs: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../src/calls/approval/order.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD,+DAA2E;AAE3E,uEAA6E;AAC7E,qEAAiE;AAwB1D,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAwB,EAAE;IACzB,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,GAAE;KAC3D,CAAC,CAAC;IAEH,OAAO,IAAA,oCAAgB,EACrB,YAAY,EACZ;QACE,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,8BAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE;YACH;gBACE,MAAM,EAAE;oBACN
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../src/calls/approval/order.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD,+DAA2E;AAE3E,uEAA6E;AAC7E,qEAAiE;AAwB1D,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAwB,EAAE;IACzB,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,GAAE;KAC3D,CAAC,CAAC;IAEH,OAAO,IAAA,oCAAgB,EACrB,YAAY,EACZ;QACE,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,8BAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE;YACH;gBACE,MAAM,EAAE;oBACN,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC9D,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;iBACzD;gBACD,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,YAAY;gBAC7B,IAAI,EAAE,UAAU;aACjB;SACO;QACV,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC3B,EACD,OAAO,EAAE,QAAQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,wBAAwB,4BAyCnC;AAqBK,MAAM,gCAAgC,GAAG,KAAK,EAAE,EACrD,OAAO,EACP,WAAW,EACX,OAAO,GAKR,EAAwB,EAAE;IACzB,OAAO,IAAA,gCAAwB,EAAC;QAC9B,OAAO;QACP,WAAW;QACX,QAAQ,EAAE,8BAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;QACjD,QAAQ,EAAE,IAAI;QACd,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,gCAAgC,oCAgB3C"}
|
|
@@ -34,25 +34,11 @@ const setTokenAllowances = async ({ chainId, userAddress, tokenAddress, options,
|
|
|
34
34
|
const approvalAbi = [
|
|
35
35
|
{
|
|
36
36
|
inputs: [
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
name: 'spender',
|
|
40
|
-
type: 'address',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
internalType: 'uint256',
|
|
44
|
-
name: 'value',
|
|
45
|
-
type: 'uint256',
|
|
46
|
-
},
|
|
37
|
+
{ internalType: 'address', name: 'spender', type: 'address' },
|
|
38
|
+
{ internalType: 'uint256', name: 'value', type: 'uint256' },
|
|
47
39
|
],
|
|
48
40
|
name: 'approve',
|
|
49
|
-
outputs: [
|
|
50
|
-
{
|
|
51
|
-
internalType: 'bool',
|
|
52
|
-
name: '',
|
|
53
|
-
type: 'bool',
|
|
54
|
-
},
|
|
55
|
-
],
|
|
41
|
+
outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
|
|
56
42
|
stateMutability: 'nonpayable',
|
|
57
43
|
type: 'function',
|
|
58
44
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/calls/approval/token.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD,+DAA2E;AAE3E,uDAA6D;AAC7D,sEAAwE;AACxE,uEAA6E;AAC7E,6CAA6C;AAC7C,qEAAiE;AAgC1D,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,GAMR,EAA0B,EAAE;IAC3B,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,GAAE;KAC3D,CAAC,CAAC;IAGH,MAAM,iBAAiB,GAAG,8BAAkB,CAAC,OAAO,CAAE,CAAC,UAAU,CAAC;IAClE,MAAM,kBAAkB,GAAG,8BAAkB,CAAC,OAAO,CAAE,CAAC,WAAW,CAAC;IAEpE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,IAAA,oBAAa,EAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC;QAClD,IAAA,gBAAQ,EAAC;YACP,OAAO;YACP,YAAY;YACZ,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SAChE,CAAC;KACH,CAAC,CAAC;IAGH,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAU,CAAC;IACvE,MAAM,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAG9C,MAAM,CACJ,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,IAAA,0BAAc,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/calls/approval/token.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/views/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTradingBalance = exports.getVault = exports.getReferralSummary = exports.getUserNativeVolume = exports.getTopUsersByNativeVolume = exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getStableCurrencies = exports.getCurrencies = exports.getContractAddresses = exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.parseMakeOrderIdsFromReceipt = exports.getQuoteToken = exports.getMarketSnapshot = exports.getMarketSnapshots = exports.getExpectedInput = exports.getExpectedOutput = exports.getLatestChartLog = exports.getChartLogs = exports.getMarket = void 0;
|
|
3
|
+
exports.getOrderSetupStatus = exports.needsVaultDeposit = exports.checkTokenAllowances = exports.isOrderOperatorApproved = exports.getTradingBalance = exports.getVault = exports.getReferralSummary = exports.getUserNativeVolume = exports.getTopUsersByNativeVolume = exports.getUserDailyVolumes = exports.getProtocolAnalytics = exports.getDailyClosePriceMap = exports.getLatestPriceMap = exports.getStableCurrencies = exports.getCurrencies = exports.getContractAddresses = exports.getSubgraphBlock = exports.getSubgraphBlockNumber = exports.getSubgraphEndpoint = exports.getOpenOrders = exports.getOpenOrder = exports.getPriceNeighborhood = exports.parseMakeOrderIdsFromReceipt = exports.getQuoteToken = exports.getMarketSnapshot = exports.getMarketSnapshots = exports.getExpectedInput = exports.getExpectedOutput = exports.getLatestChartLog = exports.getChartLogs = exports.getMarket = void 0;
|
|
4
4
|
var market_1 = require("./market");
|
|
5
5
|
Object.defineProperty(exports, "getMarket", { enumerable: true, get: function () { return market_1.getMarket; } });
|
|
6
6
|
Object.defineProperty(exports, "getChartLogs", { enumerable: true, get: function () { return market_1.getChartLogs; } });
|
|
@@ -37,4 +37,9 @@ var vault_1 = require("./vault");
|
|
|
37
37
|
Object.defineProperty(exports, "getVault", { enumerable: true, get: function () { return vault_1.getVault; } });
|
|
38
38
|
var balance_1 = require("./balance");
|
|
39
39
|
Object.defineProperty(exports, "getTradingBalance", { enumerable: true, get: function () { return balance_1.getTradingBalance; } });
|
|
40
|
+
var setup_1 = require("./setup");
|
|
41
|
+
Object.defineProperty(exports, "isOrderOperatorApproved", { enumerable: true, get: function () { return setup_1.isOrderOperatorApproved; } });
|
|
42
|
+
Object.defineProperty(exports, "checkTokenAllowances", { enumerable: true, get: function () { return setup_1.checkTokenAllowances; } });
|
|
43
|
+
Object.defineProperty(exports, "needsVaultDeposit", { enumerable: true, get: function () { return setup_1.needsVaultDeposit; } });
|
|
44
|
+
Object.defineProperty(exports, "getOrderSetupStatus", { enumerable: true, get: function () { return setup_1.getOrderSetupStatus; } });
|
|
40
45
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCAUkB;AAThB,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sHAAA,4BAA4B,OAAA;AAG9B,+BAA8C;AAArC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA2D;AAAlD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,uCAIoB;AAHlB,+GAAA,mBAAmB,OAAA;AACnB,kHAAA,sBAAsB,OAAA;AACtB,4GAAA,gBAAgB,OAAA;AAElB,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAC7B,uCAKoB;AAJlB,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AAEvB,yCAMqB;AALnB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sHAAA,yBAAyB,OAAA;AACzB,gHAAA,mBAAmB,OAAA;AACnB,+GAAA,kBAAkB,OAAA;AAEpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,mCAUkB;AAThB,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,uGAAA,aAAa,OAAA;AACb,sHAAA,4BAA4B,OAAA;AAG9B,+BAA8C;AAArC,4GAAA,oBAAoB,OAAA;AAC7B,2CAA2D;AAAlD,0GAAA,YAAY,OAAA;AAAE,2GAAA,aAAa,OAAA;AACpC,uCAIoB;AAHlB,+GAAA,mBAAmB,OAAA;AACnB,kHAAA,sBAAsB,OAAA;AACtB,4GAAA,gBAAgB,OAAA;AAElB,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAC7B,uCAKoB;AAJlB,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,6GAAA,iBAAiB,OAAA;AACjB,iHAAA,qBAAqB,OAAA;AAEvB,yCAMqB;AALnB,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sHAAA,yBAAyB,OAAA;AACzB,gHAAA,mBAAmB,OAAA;AACnB,+GAAA,kBAAkB,OAAA;AAEpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,iCAKiB;AAJf,gHAAA,uBAAuB,OAAA;AACvB,6GAAA,oBAAoB,OAAA;AACpB,0GAAA,iBAAiB,OAAA;AACjB,4GAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrderSetupStatus = exports.needsVaultDeposit = exports.checkTokenAllowances = exports.isOrderOperatorApproved = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const chain_1 = require("../constants/chain-configs/chain");
|
|
6
|
+
const addresses_1 = require("../constants/chain-configs/addresses");
|
|
7
|
+
const book_manager_abi_1 = require("../constants/abis/core/book-manager-abi");
|
|
8
|
+
const vault_1 = require("./vault");
|
|
9
|
+
const apis_1 = require("../entities/currency/apis");
|
|
10
|
+
const dex_vault_abi_1 = require("../constants/abis/core/dex-vault-abi");
|
|
11
|
+
const isOrderOperatorApproved = async ({ chainId, userAddress, operator, options, }) => {
|
|
12
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
13
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
14
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
15
|
+
});
|
|
16
|
+
const operatorAddress = operator || addresses_1.CONTRACT_ADDRESSES[chainId].Controller;
|
|
17
|
+
return publicClient.readContract({
|
|
18
|
+
address: addresses_1.CONTRACT_ADDRESSES[chainId].BookManager,
|
|
19
|
+
abi: book_manager_abi_1.BOOK_MANAGER_ABI,
|
|
20
|
+
functionName: 'isOrderOperator',
|
|
21
|
+
args: [userAddress, operatorAddress],
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
exports.isOrderOperatorApproved = isOrderOperatorApproved;
|
|
25
|
+
const checkTokenAllowances = async ({ chainId, userAddress, tokenAddress, options, }) => {
|
|
26
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
27
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
28
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
29
|
+
});
|
|
30
|
+
const controllerAddress = addresses_1.CONTRACT_ADDRESSES[chainId].Controller;
|
|
31
|
+
const bookManagerAddress = addresses_1.CONTRACT_ADDRESSES[chainId].BookManager;
|
|
32
|
+
const [currency, vault] = await Promise.all([
|
|
33
|
+
(0, apis_1.fetchCurrency)(publicClient, chainId, tokenAddress),
|
|
34
|
+
(0, vault_1.getVault)({ chainId, tokenAddress, ...(options && { options }) }),
|
|
35
|
+
]);
|
|
36
|
+
const threshold = 2n ** 256n - 1n - 10n ** BigInt(currency.decimals) * 1000000n;
|
|
37
|
+
const results = await publicClient.multicall({
|
|
38
|
+
contracts: [
|
|
39
|
+
{
|
|
40
|
+
address: tokenAddress,
|
|
41
|
+
abi: viem_1.erc20Abi,
|
|
42
|
+
functionName: 'allowance',
|
|
43
|
+
args: [userAddress, controllerAddress],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
address: vault.address,
|
|
47
|
+
abi: viem_1.erc20Abi,
|
|
48
|
+
functionName: 'allowance',
|
|
49
|
+
args: [userAddress, controllerAddress],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
address: vault.address,
|
|
53
|
+
abi: viem_1.erc20Abi,
|
|
54
|
+
functionName: 'allowance',
|
|
55
|
+
args: [userAddress, bookManagerAddress],
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
});
|
|
59
|
+
const tokenToController = results[0].result || 0n;
|
|
60
|
+
const vaultToController = results[1].result || 0n;
|
|
61
|
+
const vaultToBookManager = results[2].result || 0n;
|
|
62
|
+
return {
|
|
63
|
+
tokenToController: tokenToController > threshold,
|
|
64
|
+
vaultToController: vaultToController > threshold,
|
|
65
|
+
vaultToBookManager: vaultToBookManager > threshold,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
exports.checkTokenAllowances = checkTokenAllowances;
|
|
69
|
+
const needsVaultDeposit = async ({ chainId, userAddress, tokenAddress, requiredAmount, options, }) => {
|
|
70
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
71
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
72
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
73
|
+
});
|
|
74
|
+
const [currency, vault] = await Promise.all([
|
|
75
|
+
(0, apis_1.fetchCurrency)(publicClient, chainId, tokenAddress),
|
|
76
|
+
(0, vault_1.getVault)({ chainId, tokenAddress, ...(options && { options }) }),
|
|
77
|
+
]);
|
|
78
|
+
const vaultAvailable = await publicClient.readContract({
|
|
79
|
+
address: vault.address,
|
|
80
|
+
abi: dex_vault_abi_1.DEX_VAULT_ABI,
|
|
81
|
+
functionName: 'maxWithdraw',
|
|
82
|
+
args: [userAddress],
|
|
83
|
+
});
|
|
84
|
+
const required = (0, viem_1.parseUnits)(requiredAmount, currency.decimals);
|
|
85
|
+
return vaultAvailable < required;
|
|
86
|
+
};
|
|
87
|
+
exports.needsVaultDeposit = needsVaultDeposit;
|
|
88
|
+
const getOrderSetupStatus = async ({ chainId, userAddress, tokenAddress, requiredAmount, options, }) => {
|
|
89
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
90
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
91
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
92
|
+
});
|
|
93
|
+
const controllerAddress = addresses_1.CONTRACT_ADDRESSES[chainId].Controller;
|
|
94
|
+
const bookManagerAddress = addresses_1.CONTRACT_ADDRESSES[chainId].BookManager;
|
|
95
|
+
const operatorAddress = options?.operator || controllerAddress;
|
|
96
|
+
const [currency, vault] = await Promise.all([
|
|
97
|
+
(0, apis_1.fetchCurrency)(publicClient, chainId, tokenAddress),
|
|
98
|
+
(0, vault_1.getVault)({ chainId, tokenAddress, ...(options && { options }) }),
|
|
99
|
+
]);
|
|
100
|
+
const threshold = 2n ** 256n - 1n - 10n ** BigInt(currency.decimals) * 1000000n;
|
|
101
|
+
const required = (0, viem_1.parseUnits)(requiredAmount, currency.decimals);
|
|
102
|
+
const results = await publicClient.multicall({
|
|
103
|
+
contracts: [
|
|
104
|
+
{
|
|
105
|
+
address: addresses_1.CONTRACT_ADDRESSES[chainId].BookManager,
|
|
106
|
+
abi: book_manager_abi_1.BOOK_MANAGER_ABI,
|
|
107
|
+
functionName: 'isOrderOperator',
|
|
108
|
+
args: [userAddress, operatorAddress],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
address: tokenAddress,
|
|
112
|
+
abi: viem_1.erc20Abi,
|
|
113
|
+
functionName: 'allowance',
|
|
114
|
+
args: [userAddress, controllerAddress],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
address: vault.address,
|
|
118
|
+
abi: viem_1.erc20Abi,
|
|
119
|
+
functionName: 'allowance',
|
|
120
|
+
args: [userAddress, controllerAddress],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
address: vault.address,
|
|
124
|
+
abi: viem_1.erc20Abi,
|
|
125
|
+
functionName: 'allowance',
|
|
126
|
+
args: [userAddress, bookManagerAddress],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
address: vault.address,
|
|
130
|
+
abi: dex_vault_abi_1.DEX_VAULT_ABI,
|
|
131
|
+
functionName: 'maxWithdraw',
|
|
132
|
+
args: [userAddress],
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
});
|
|
136
|
+
const operatorApproved = results[0].result || false;
|
|
137
|
+
const tokenAllowance = results[1].result || 0n;
|
|
138
|
+
const vaultToController = results[2].result || 0n;
|
|
139
|
+
const vaultToBookManager = results[3].result || 0n;
|
|
140
|
+
const vaultAvailable = results[4].result || 0n;
|
|
141
|
+
const tokenToController = tokenAllowance > threshold;
|
|
142
|
+
const vaultToControllerOk = vaultToController > threshold;
|
|
143
|
+
const vaultToBookManagerOk = vaultToBookManager > threshold;
|
|
144
|
+
return {
|
|
145
|
+
operatorApproved,
|
|
146
|
+
tokenAllowances: {
|
|
147
|
+
tokenToController,
|
|
148
|
+
vaultToController: vaultToControllerOk,
|
|
149
|
+
vaultToBookManager: vaultToBookManagerOk,
|
|
150
|
+
allSet: tokenToController && vaultToControllerOk && vaultToBookManagerOk,
|
|
151
|
+
},
|
|
152
|
+
vaultBalance: {
|
|
153
|
+
currency,
|
|
154
|
+
value: (0, viem_1.formatUnits)(vaultAvailable, currency.decimals),
|
|
155
|
+
},
|
|
156
|
+
needsDeposit: vaultAvailable < required,
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
exports.getOrderSetupStatus = getOrderSetupStatus;
|
|
160
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/views/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/views/vault.js
CHANGED
|
@@ -16,9 +16,11 @@ const getVault = async ({ chainId, tokenAddress, options, }) => {
|
|
|
16
16
|
functionName: 'getVault',
|
|
17
17
|
args: [tokenAddress],
|
|
18
18
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
if ((0, viem_1.isAddressEqual)(vaultAddress, viem_1.zeroAddress)) {
|
|
20
|
+
throw new Error(`Vault not found for token ${tokenAddress} on chain ${chainId}. ` +
|
|
21
|
+
`The vault has not been registered yet. Deploy a vault contract for this token and register it using the setVault() function.`);
|
|
22
|
+
}
|
|
23
|
+
return { address: vaultAddress };
|
|
22
24
|
};
|
|
23
25
|
exports.getVault = getVault;
|
|
24
26
|
//# sourceMappingURL=vault.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/views/vault.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/views/vault.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAE7E,4DAAwE;AACxE,oEAA0E;AAC1E,8EAA2E;AAkBpE,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,YAAY,EACZ,OAAO,GAKR,EAAkB,EAAE;IACnB,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,KAAK,EAAE,iBAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,GAAE;KAC3D,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,8BAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE,mCAAgB;QACrB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;IAEH,IAAI,IAAA,qBAAc,EAAC,YAAY,EAAE,kBAAW,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,6BAA6B,YAAY,aAAa,OAAO,IAAI;YAC/D,8HAA8H,CACjI,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC,CAAC;AA7BW,QAAA,QAAQ,YA6BnB"}
|
|
@@ -36,16 +36,8 @@ export const setOrderOperatorApproval = async ({ chainId, userAddress, operator,
|
|
|
36
36
|
abi: [
|
|
37
37
|
{
|
|
38
38
|
inputs: [
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
name: 'operator',
|
|
42
|
-
type: 'address',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
internalType: 'bool',
|
|
46
|
-
name: 'approved',
|
|
47
|
-
type: 'bool',
|
|
48
|
-
},
|
|
39
|
+
{ internalType: 'address', name: 'operator', type: 'address' },
|
|
40
|
+
{ internalType: 'bool', name: 'approved', type: 'bool' },
|
|
49
41
|
],
|
|
50
42
|
name: 'setOrderOperator',
|
|
51
43
|
outputs: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../src/calls/approval/order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAwB,EAAE;IACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC3D,CAAC,CAAC;IAEH,OAAO,gBAAgB,CACrB,YAAY,EACZ;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE;YACH;gBACE,MAAM,EAAE;oBACN
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../src/calls/approval/order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAwB,EAAE;IACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC3D,CAAC,CAAC;IAEH,OAAO,gBAAgB,CACrB,YAAY,EACZ;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE;YACH;gBACE,MAAM,EAAE;oBACN,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC9D,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;iBACzD;gBACD,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,YAAY;gBAC7B,IAAI,EAAE,UAAU;aACjB;SACO;QACV,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC3B,EACD,OAAO,EAAE,QAAQ,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EAAE,EACrD,OAAO,EACP,WAAW,EACX,OAAO,GAKR,EAAwB,EAAE;IACzB,OAAO,wBAAwB,CAAC;QAC9B,OAAO;QACP,WAAW;QACX,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;QACjD,QAAQ,EAAE,IAAI;QACd,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -64,25 +64,11 @@ export const setTokenAllowances = async ({ chainId, userAddress, tokenAddress, o
|
|
|
64
64
|
const approvalAbi = [
|
|
65
65
|
{
|
|
66
66
|
inputs: [
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
name: 'spender',
|
|
70
|
-
type: 'address',
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
internalType: 'uint256',
|
|
74
|
-
name: 'value',
|
|
75
|
-
type: 'uint256',
|
|
76
|
-
},
|
|
67
|
+
{ internalType: 'address', name: 'spender', type: 'address' },
|
|
68
|
+
{ internalType: 'uint256', name: 'value', type: 'uint256' },
|
|
77
69
|
],
|
|
78
70
|
name: 'approve',
|
|
79
|
-
outputs: [
|
|
80
|
-
{
|
|
81
|
-
internalType: 'bool',
|
|
82
|
-
name: '',
|
|
83
|
-
type: 'bool',
|
|
84
|
-
},
|
|
85
|
-
],
|
|
71
|
+
outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
|
|
86
72
|
stateMutability: 'nonpayable',
|
|
87
73
|
type: 'function',
|
|
88
74
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/calls/approval/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,GAMR,EAA0B,EAAE;IAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC3D,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU,CAAC;IAClE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW,CAAC;IAEpE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC;QAClD,QAAQ,CAAC;YACP,OAAO;YACP,YAAY;YACZ,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SAChE,CAAC;KACH,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAU,CAAC;IACvE,MAAM,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAE9C,2BAA2B;IAC3B,MAAM,CACJ,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/calls/approval/token.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/views/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export { getCurrencies, getStableCurrencies, getLatestPriceMap, getDailyClosePri
|
|
|
7
7
|
export { getProtocolAnalytics, getUserDailyVolumes, getTopUsersByNativeVolume, getUserNativeVolume, getReferralSummary, } from './analytics';
|
|
8
8
|
export { getVault } from './vault';
|
|
9
9
|
export { getTradingBalance } from './balance';
|
|
10
|
+
export { isOrderOperatorApproved, checkTokenAllowances, needsVaultDeposit, getOrderSetupStatus, } from './setup';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { createPublicClient, http, erc20Abi, parseUnits, formatUnits, } from 'viem';
|
|
2
|
+
import { CHAIN_MAP } from '../constants/chain-configs/chain';
|
|
3
|
+
import { CONTRACT_ADDRESSES } from '../constants/chain-configs/addresses';
|
|
4
|
+
import { BOOK_MANAGER_ABI } from '../constants/abis/core/book-manager-abi';
|
|
5
|
+
import { getVault } from './vault';
|
|
6
|
+
import { fetchCurrency } from '../entities/currency/apis';
|
|
7
|
+
import { DEX_VAULT_ABI } from '../constants/abis/core/dex-vault-abi';
|
|
8
|
+
/**
|
|
9
|
+
* Check if an operator is approved for a user.
|
|
10
|
+
*
|
|
11
|
+
* @param chainId The chain ID.
|
|
12
|
+
* @param userAddress The user address.
|
|
13
|
+
* @param operator The operator address (defaults to Controller).
|
|
14
|
+
* @param options Optional RPC URL.
|
|
15
|
+
* @returns Promise resolving to true if operator is approved.
|
|
16
|
+
* @example
|
|
17
|
+
* import { isOrderOperatorApproved } from '@clober/v2-sdk'
|
|
18
|
+
*
|
|
19
|
+
* const isApproved = await isOrderOperatorApproved({
|
|
20
|
+
* chainId: 421614,
|
|
21
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69'
|
|
22
|
+
* })
|
|
23
|
+
*/
|
|
24
|
+
export const isOrderOperatorApproved = async ({ chainId, userAddress, operator, options, }) => {
|
|
25
|
+
const publicClient = createPublicClient({
|
|
26
|
+
chain: CHAIN_MAP[chainId],
|
|
27
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
28
|
+
});
|
|
29
|
+
const operatorAddress = operator || CONTRACT_ADDRESSES[chainId].Controller;
|
|
30
|
+
return publicClient.readContract({
|
|
31
|
+
address: CONTRACT_ADDRESSES[chainId].BookManager,
|
|
32
|
+
abi: BOOK_MANAGER_ABI,
|
|
33
|
+
functionName: 'isOrderOperator',
|
|
34
|
+
args: [userAddress, operatorAddress],
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Check token allowances for trading.
|
|
39
|
+
* Returns which allowances are sufficient (above threshold).
|
|
40
|
+
*
|
|
41
|
+
* @param chainId The chain ID.
|
|
42
|
+
* @param userAddress The user address.
|
|
43
|
+
* @param tokenAddress The token address.
|
|
44
|
+
* @param options Optional RPC URL.
|
|
45
|
+
* @returns Promise resolving to allowance status object.
|
|
46
|
+
* @example
|
|
47
|
+
* import { checkTokenAllowances } from '@clober/v2-sdk'
|
|
48
|
+
*
|
|
49
|
+
* const status = await checkTokenAllowances({
|
|
50
|
+
* chainId: 421614,
|
|
51
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
52
|
+
* tokenAddress: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
|
|
53
|
+
* })
|
|
54
|
+
* if (!status.tokenToController) {
|
|
55
|
+
* // Need to set token allowances
|
|
56
|
+
* }
|
|
57
|
+
*/
|
|
58
|
+
export const checkTokenAllowances = async ({ chainId, userAddress, tokenAddress, options, }) => {
|
|
59
|
+
const publicClient = createPublicClient({
|
|
60
|
+
chain: CHAIN_MAP[chainId],
|
|
61
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
62
|
+
});
|
|
63
|
+
const controllerAddress = CONTRACT_ADDRESSES[chainId].Controller;
|
|
64
|
+
const bookManagerAddress = CONTRACT_ADDRESSES[chainId].BookManager;
|
|
65
|
+
const [currency, vault] = await Promise.all([
|
|
66
|
+
fetchCurrency(publicClient, chainId, tokenAddress),
|
|
67
|
+
getVault({ chainId, tokenAddress, ...(options && { options }) }),
|
|
68
|
+
]);
|
|
69
|
+
const threshold = 2n ** 256n - 1n - 10n ** BigInt(currency.decimals) * 1000000n;
|
|
70
|
+
const results = await publicClient.multicall({
|
|
71
|
+
contracts: [
|
|
72
|
+
{
|
|
73
|
+
address: tokenAddress,
|
|
74
|
+
abi: erc20Abi,
|
|
75
|
+
functionName: 'allowance',
|
|
76
|
+
args: [userAddress, controllerAddress],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
address: vault.address,
|
|
80
|
+
abi: erc20Abi,
|
|
81
|
+
functionName: 'allowance',
|
|
82
|
+
args: [userAddress, controllerAddress],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
address: vault.address,
|
|
86
|
+
abi: erc20Abi,
|
|
87
|
+
functionName: 'allowance',
|
|
88
|
+
args: [userAddress, bookManagerAddress],
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
const tokenToController = results[0].result || 0n;
|
|
93
|
+
const vaultToController = results[1].result || 0n;
|
|
94
|
+
const vaultToBookManager = results[2].result || 0n;
|
|
95
|
+
return {
|
|
96
|
+
tokenToController: tokenToController > threshold,
|
|
97
|
+
vaultToController: vaultToController > threshold,
|
|
98
|
+
vaultToBookManager: vaultToBookManager > threshold,
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Check if vault deposit is needed for an order.
|
|
103
|
+
* Compares vault available balance against required amount.
|
|
104
|
+
*
|
|
105
|
+
* @param chainId The chain ID.
|
|
106
|
+
* @param userAddress The user address.
|
|
107
|
+
* @param tokenAddress The token address.
|
|
108
|
+
* @param requiredAmount The amount needed (decimal-adjusted string, e.g., "100.5").
|
|
109
|
+
* @param options Optional RPC URL.
|
|
110
|
+
* @returns Promise resolving to true if deposit is needed.
|
|
111
|
+
* @example
|
|
112
|
+
* import { needsVaultDeposit } from '@clober/v2-sdk'
|
|
113
|
+
*
|
|
114
|
+
* const needsDeposit = await needsVaultDeposit({
|
|
115
|
+
* chainId: 421614,
|
|
116
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
117
|
+
* tokenAddress: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
118
|
+
* requiredAmount: "100"
|
|
119
|
+
* })
|
|
120
|
+
*/
|
|
121
|
+
export const needsVaultDeposit = async ({ chainId, userAddress, tokenAddress, requiredAmount, options, }) => {
|
|
122
|
+
const publicClient = createPublicClient({
|
|
123
|
+
chain: CHAIN_MAP[chainId],
|
|
124
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
125
|
+
});
|
|
126
|
+
const [currency, vault] = await Promise.all([
|
|
127
|
+
fetchCurrency(publicClient, chainId, tokenAddress),
|
|
128
|
+
getVault({ chainId, tokenAddress, ...(options && { options }) }),
|
|
129
|
+
]);
|
|
130
|
+
const vaultAvailable = await publicClient.readContract({
|
|
131
|
+
address: vault.address,
|
|
132
|
+
abi: DEX_VAULT_ABI,
|
|
133
|
+
functionName: 'maxWithdraw',
|
|
134
|
+
args: [userAddress],
|
|
135
|
+
});
|
|
136
|
+
const required = parseUnits(requiredAmount, currency.decimals);
|
|
137
|
+
return vaultAvailable < required;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Get complete order setup status in a single call.
|
|
141
|
+
* Checks operator approval, token allowances, and vault balance.
|
|
142
|
+
*
|
|
143
|
+
* @param chainId The chain ID.
|
|
144
|
+
* @param userAddress The user address.
|
|
145
|
+
* @param tokenAddress The token address.
|
|
146
|
+
* @param requiredAmount The amount needed for the order (decimal-adjusted string).
|
|
147
|
+
* @param options Optional RPC URL and operator address.
|
|
148
|
+
* @returns Promise resolving to complete setup status.
|
|
149
|
+
* @example
|
|
150
|
+
* import { getOrderSetupStatus } from '@clober/v2-sdk'
|
|
151
|
+
*
|
|
152
|
+
* const status = await getOrderSetupStatus({
|
|
153
|
+
* chainId: 421614,
|
|
154
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
155
|
+
* tokenAddress: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
156
|
+
* requiredAmount: "100"
|
|
157
|
+
* })
|
|
158
|
+
*
|
|
159
|
+
* if (!status.operatorApproved) await setOrderOperatorApproval(...)
|
|
160
|
+
* if (!status.allAllowancesSet) await setTokenAllowances(...)
|
|
161
|
+
* if (status.needsDeposit) await depositToVault(...)
|
|
162
|
+
*/
|
|
163
|
+
export const getOrderSetupStatus = async ({ chainId, userAddress, tokenAddress, requiredAmount, options, }) => {
|
|
164
|
+
const publicClient = createPublicClient({
|
|
165
|
+
chain: CHAIN_MAP[chainId],
|
|
166
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
167
|
+
});
|
|
168
|
+
const controllerAddress = CONTRACT_ADDRESSES[chainId].Controller;
|
|
169
|
+
const bookManagerAddress = CONTRACT_ADDRESSES[chainId].BookManager;
|
|
170
|
+
const operatorAddress = options?.operator || controllerAddress;
|
|
171
|
+
const [currency, vault] = await Promise.all([
|
|
172
|
+
fetchCurrency(publicClient, chainId, tokenAddress),
|
|
173
|
+
getVault({ chainId, tokenAddress, ...(options && { options }) }),
|
|
174
|
+
]);
|
|
175
|
+
const threshold = 2n ** 256n - 1n - 10n ** BigInt(currency.decimals) * 1000000n;
|
|
176
|
+
const required = parseUnits(requiredAmount, currency.decimals);
|
|
177
|
+
// Single multicall for all checks
|
|
178
|
+
const results = await publicClient.multicall({
|
|
179
|
+
contracts: [
|
|
180
|
+
{
|
|
181
|
+
address: CONTRACT_ADDRESSES[chainId].BookManager,
|
|
182
|
+
abi: BOOK_MANAGER_ABI,
|
|
183
|
+
functionName: 'isOrderOperator',
|
|
184
|
+
args: [userAddress, operatorAddress],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
address: tokenAddress,
|
|
188
|
+
abi: erc20Abi,
|
|
189
|
+
functionName: 'allowance',
|
|
190
|
+
args: [userAddress, controllerAddress],
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
address: vault.address,
|
|
194
|
+
abi: erc20Abi,
|
|
195
|
+
functionName: 'allowance',
|
|
196
|
+
args: [userAddress, controllerAddress],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
address: vault.address,
|
|
200
|
+
abi: erc20Abi,
|
|
201
|
+
functionName: 'allowance',
|
|
202
|
+
args: [userAddress, bookManagerAddress],
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
address: vault.address,
|
|
206
|
+
abi: DEX_VAULT_ABI,
|
|
207
|
+
functionName: 'maxWithdraw',
|
|
208
|
+
args: [userAddress],
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
});
|
|
212
|
+
const operatorApproved = results[0].result || false;
|
|
213
|
+
const tokenAllowance = results[1].result || 0n;
|
|
214
|
+
const vaultToController = results[2].result || 0n;
|
|
215
|
+
const vaultToBookManager = results[3].result || 0n;
|
|
216
|
+
const vaultAvailable = results[4].result || 0n;
|
|
217
|
+
const tokenToController = tokenAllowance > threshold;
|
|
218
|
+
const vaultToControllerOk = vaultToController > threshold;
|
|
219
|
+
const vaultToBookManagerOk = vaultToBookManager > threshold;
|
|
220
|
+
return {
|
|
221
|
+
operatorApproved,
|
|
222
|
+
tokenAllowances: {
|
|
223
|
+
tokenToController,
|
|
224
|
+
vaultToController: vaultToControllerOk,
|
|
225
|
+
vaultToBookManager: vaultToBookManagerOk,
|
|
226
|
+
allSet: tokenToController && vaultToControllerOk && vaultToBookManagerOk,
|
|
227
|
+
},
|
|
228
|
+
vaultBalance: {
|
|
229
|
+
currency,
|
|
230
|
+
value: formatUnits(vaultAvailable, currency.decimals),
|
|
231
|
+
},
|
|
232
|
+
needsDeposit: vaultAvailable < required,
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/views/setup.ts"],"names":[],"mappings":"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"}
|