@1stdex/first-sdk 1.0.6 → 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.
@@ -5,16 +5,11 @@ const viem_1 = require("viem");
5
5
  const chain_1 = require("../../constants/chain-configs/chain");
6
6
  const addresses_1 = require("../../constants/chain-configs/addresses");
7
7
  const build_transaction_1 = require("../../utils/build-transaction");
8
- const operator_1 = require("../../entities/open-order/apis/operator");
9
8
  const setOrderOperatorApproval = async ({ chainId, userAddress, operator, approved, options, }) => {
10
9
  const publicClient = (0, viem_1.createPublicClient)({
11
10
  chain: chain_1.CHAIN_MAP[chainId],
12
11
  transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
13
12
  });
14
- const isOrderOperator = await (0, operator_1.fetchIsOrderOperator)(publicClient, chainId, userAddress);
15
- if (!isOrderOperator) {
16
- return undefined;
17
- }
18
13
  return (0, build_transaction_1.buildTransaction)(publicClient, {
19
14
  chain: chain_1.CHAIN_MAP[chainId],
20
15
  account: userAddress,
@@ -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;AACjE,sEAA+E;AAwBxE,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAoC,EAAE;IACrC,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,eAAe,GAAG,MAAM,IAAA,+BAAoB,EAChD,YAAY,EACZ,OAAO,EACP,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,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;AAlDW,QAAA,wBAAwB,4BAkDnC;AAqBK,MAAM,gCAAgC,GAAG,KAAK,EAAE,EACrD,OAAO,EACP,WAAW,EACX,OAAO,GAKR,EAAoC,EAAE;IACrC,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"}
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"}
@@ -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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"}
@@ -16,9 +16,11 @@ const getVault = async ({ chainId, tokenAddress, options, }) => {
16
16
  functionName: 'getVault',
17
17
  args: [tokenAddress],
18
18
  });
19
- return {
20
- address: vaultAddress,
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,+BAAgD;AAEhD,4DAAwE;AACxE,oEAA0E;AAC1E,8EAA2E;AAkBpE,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,YAAY,EACZ,OAAO,GAOR,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,OAAO;QACL,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,QAAQ,YA0BnB"}
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"}
@@ -2,7 +2,6 @@ import { createPublicClient, http } from 'viem';
2
2
  import { CHAIN_MAP } from '../../constants/chain-configs/chain';
3
3
  import { CONTRACT_ADDRESSES } from '../../constants/chain-configs/addresses';
4
4
  import { buildTransaction } from '../../utils/build-transaction';
5
- import { fetchIsOrderOperator } from '../../entities/open-order/apis/operator';
6
5
  /**
7
6
  * Prepares a transaction to set the order operator approval for the specified operator address on the given chain.
8
7
  *
@@ -30,10 +29,6 @@ export const setOrderOperatorApproval = async ({ chainId, userAddress, operator,
30
29
  chain: CHAIN_MAP[chainId],
31
30
  transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
32
31
  });
33
- const isOrderOperator = await fetchIsOrderOperator(publicClient, chainId, userAddress);
34
- if (!isOrderOperator) {
35
- return undefined;
36
- }
37
32
  return buildTransaction(publicClient, {
38
33
  chain: CHAIN_MAP[chainId],
39
34
  account: userAddress,
@@ -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;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,GAOR,EAAoC,EAAE;IACrC,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,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,YAAY,EACZ,OAAO,EACP,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,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,EAAoC,EAAE;IACrC,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"}
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"}
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { createPublicClient, http } from 'viem';
1
+ import { createPublicClient, http, isAddressEqual, zeroAddress } from 'viem';
2
2
  import { CHAIN_MAP } from '../constants/chain-configs/chain';
3
3
  import { CONTRACT_ADDRESSES } from '../constants/chain-configs/addresses';
4
4
  import { BOOK_MANAGER_ABI } from '../constants/abis/core/book-manager-abi';
@@ -28,8 +28,10 @@ export const getVault = async ({ chainId, tokenAddress, options, }) => {
28
28
  functionName: 'getVault',
29
29
  args: [tokenAddress],
30
30
  });
31
- return {
32
- address: vaultAddress,
33
- };
31
+ if (isAddressEqual(vaultAddress, zeroAddress)) {
32
+ throw new Error(`Vault not found for token ${tokenAddress} on chain ${chainId}. ` +
33
+ `The vault has not been registered yet. Deploy a vault contract for this token and register it using the setVault() function.`);
34
+ }
35
+ return { address: vaultAddress };
34
36
  };
35
37
  //# sourceMappingURL=vault.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/views/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAa,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAG3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,YAAY,EACZ,OAAO,GAOR,EAAkB,EAAE;IACnB,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,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/views/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAa,SAAS,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAG3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,YAAY,EACZ,OAAO,GAKR,EAAkB,EAAE;IACnB,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,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,WAAW;QACjD,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,YAAY,CAAC;KACrB,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,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"}