@ember-finance/sdk 1.2.3 → 1.3.0
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/src/abis/EmberETHVault.json +2985 -0
- package/dist/src/abis/index.d.ts +9 -0
- package/dist/src/abis/index.js +22 -0
- package/dist/src/evm-vaults/interfaces/index.d.ts +11 -0
- package/dist/src/evm-vaults/on-chain-calls/operator.d.ts +4 -4
- package/dist/src/evm-vaults/on-chain-calls/operator.js +8 -8
- package/dist/src/evm-vaults/on-chain-calls/tx-builder.d.ts +56 -11
- package/dist/src/evm-vaults/on-chain-calls/tx-builder.js +93 -21
- package/dist/src/evm-vaults/on-chain-calls/user.d.ts +56 -7
- package/dist/src/evm-vaults/on-chain-calls/user.js +76 -14
- package/dist/src/evm-vaults/on-chain-calls/vault-reader.d.ts +62 -30
- package/dist/src/evm-vaults/on-chain-calls/vault-reader.js +103 -69
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ exports.EVMVaultReader = void 0;
|
|
|
7
7
|
const ethers_1 = require("ethers");
|
|
8
8
|
const deployment_parser_1 = require("../utils/deployment-parser");
|
|
9
9
|
const EmberVault_json_1 = __importDefault(require("../../abis/EmberVault.json"));
|
|
10
|
+
const EmberETHVault_json_1 = __importDefault(require("../../abis/EmberETHVault.json"));
|
|
10
11
|
const EmberProtocolConfig_json_1 = __importDefault(require("../../abis/EmberProtocolConfig.json"));
|
|
11
12
|
const ERC20Token_json_1 = __importDefault(require("../../abis/ERC20Token.json"));
|
|
12
13
|
/**
|
|
@@ -46,9 +47,12 @@ class EVMVaultReader {
|
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
49
|
* Creates an ethers Contract instance for a vault
|
|
50
|
+
* @param vaultAddress The vault address
|
|
51
|
+
* @param isETHVault If true, uses EmberETHVault ABI (defaults to EmberVault ABI)
|
|
49
52
|
*/
|
|
50
|
-
getVaultContract(vaultAddress) {
|
|
51
|
-
|
|
53
|
+
getVaultContract(vaultAddress, isETHVault) {
|
|
54
|
+
const abi = isETHVault ? EmberETHVault_json_1.default.abi : EmberVault_json_1.default.abi;
|
|
55
|
+
return new ethers_1.Contract(vaultAddress, abi, this.provider);
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* Creates an ethers Contract instance for protocol config
|
|
@@ -67,10 +71,11 @@ class EVMVaultReader {
|
|
|
67
71
|
/**
|
|
68
72
|
* Gets the basic vault state
|
|
69
73
|
* @param vaultAddress The vault address
|
|
74
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
70
75
|
* @returns Vault state information
|
|
71
76
|
*/
|
|
72
|
-
async getVaultState(vaultAddress) {
|
|
73
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
77
|
+
async getVaultState(vaultAddress, isETHVault) {
|
|
78
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
74
79
|
const [vaultName, tokenName, tokenSymbol, decimals, asset, totalAssets, totalSupply, maxTVL, minWithdrawableShares, protocolConfig, owner, sequenceNumber] = await Promise.all([
|
|
75
80
|
vault.vaultName(),
|
|
76
81
|
vault.name(),
|
|
@@ -103,10 +108,11 @@ class EVMVaultReader {
|
|
|
103
108
|
/**
|
|
104
109
|
* Gets the vault rate information
|
|
105
110
|
* @param vaultAddress The vault address
|
|
111
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
106
112
|
* @returns Rate information
|
|
107
113
|
*/
|
|
108
|
-
async getVaultRate(vaultAddress) {
|
|
109
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
114
|
+
async getVaultRate(vaultAddress, isETHVault) {
|
|
115
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
110
116
|
const rate = await vault.rate();
|
|
111
117
|
return {
|
|
112
118
|
value: rate.value,
|
|
@@ -118,10 +124,11 @@ class EVMVaultReader {
|
|
|
118
124
|
/**
|
|
119
125
|
* Gets the vault roles (admin, operator, rate manager)
|
|
120
126
|
* @param vaultAddress The vault address
|
|
127
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
121
128
|
* @returns Vault roles
|
|
122
129
|
*/
|
|
123
|
-
async getVaultRoles(vaultAddress) {
|
|
124
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
130
|
+
async getVaultRoles(vaultAddress, isETHVault) {
|
|
131
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
125
132
|
const roles = await vault.roles();
|
|
126
133
|
return {
|
|
127
134
|
admin: roles.admin,
|
|
@@ -132,10 +139,11 @@ class EVMVaultReader {
|
|
|
132
139
|
/**
|
|
133
140
|
* Gets the vault pause status
|
|
134
141
|
* @param vaultAddress The vault address
|
|
142
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
135
143
|
* @returns Pause status for different operations
|
|
136
144
|
*/
|
|
137
|
-
async getVaultPauseStatus(vaultAddress) {
|
|
138
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
145
|
+
async getVaultPauseStatus(vaultAddress, isETHVault) {
|
|
146
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
139
147
|
const status = await vault.pauseStatus();
|
|
140
148
|
return {
|
|
141
149
|
deposits: status.deposits,
|
|
@@ -146,10 +154,11 @@ class EVMVaultReader {
|
|
|
146
154
|
/**
|
|
147
155
|
* Gets the platform fee information
|
|
148
156
|
* @param vaultAddress The vault address
|
|
157
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
149
158
|
* @returns Platform fee information
|
|
150
159
|
*/
|
|
151
|
-
async getVaultPlatformFee(vaultAddress) {
|
|
152
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
160
|
+
async getVaultPlatformFee(vaultAddress, isETHVault) {
|
|
161
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
153
162
|
const fee = await vault.platformFee();
|
|
154
163
|
return {
|
|
155
164
|
accrued: fee.accrued,
|
|
@@ -161,16 +170,17 @@ class EVMVaultReader {
|
|
|
161
170
|
/**
|
|
162
171
|
* Gets complete vault information in a single call
|
|
163
172
|
* @param vaultAddress The vault address
|
|
173
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
164
174
|
* @returns Complete vault information
|
|
165
175
|
*/
|
|
166
|
-
async getCompleteVaultInfo(vaultAddress) {
|
|
176
|
+
async getCompleteVaultInfo(vaultAddress, isETHVault) {
|
|
167
177
|
const [state, rate, roles, pauseStatus, platformFee, pendingWithdrawalsCount] = await Promise.all([
|
|
168
|
-
this.getVaultState(vaultAddress),
|
|
169
|
-
this.getVaultRate(vaultAddress),
|
|
170
|
-
this.getVaultRoles(vaultAddress),
|
|
171
|
-
this.getVaultPauseStatus(vaultAddress),
|
|
172
|
-
this.getVaultPlatformFee(vaultAddress),
|
|
173
|
-
this.getPendingWithdrawalsCount(vaultAddress)
|
|
178
|
+
this.getVaultState(vaultAddress, isETHVault),
|
|
179
|
+
this.getVaultRate(vaultAddress, isETHVault),
|
|
180
|
+
this.getVaultRoles(vaultAddress, isETHVault),
|
|
181
|
+
this.getVaultPauseStatus(vaultAddress, isETHVault),
|
|
182
|
+
this.getVaultPlatformFee(vaultAddress, isETHVault),
|
|
183
|
+
this.getPendingWithdrawalsCount(vaultAddress, isETHVault)
|
|
174
184
|
]);
|
|
175
185
|
return {
|
|
176
186
|
address: vaultAddress,
|
|
@@ -186,128 +196,141 @@ class EVMVaultReader {
|
|
|
186
196
|
/**
|
|
187
197
|
* Gets the underlying asset address
|
|
188
198
|
* @param vaultAddress The vault address
|
|
199
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
189
200
|
* @returns Asset address
|
|
190
201
|
*/
|
|
191
|
-
async getAsset(vaultAddress) {
|
|
192
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
202
|
+
async getAsset(vaultAddress, isETHVault) {
|
|
203
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
193
204
|
return vault.asset();
|
|
194
205
|
}
|
|
195
206
|
/**
|
|
196
207
|
* Gets total assets under management
|
|
197
208
|
* @param vaultAddress The vault address
|
|
209
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
198
210
|
* @returns Total assets
|
|
199
211
|
*/
|
|
200
|
-
async getTotalAssets(vaultAddress) {
|
|
201
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
212
|
+
async getTotalAssets(vaultAddress, isETHVault) {
|
|
213
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
202
214
|
return vault.totalAssets();
|
|
203
215
|
}
|
|
204
216
|
/**
|
|
205
217
|
* Gets total shares supply
|
|
206
218
|
* @param vaultAddress The vault address
|
|
219
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
207
220
|
* @returns Total supply
|
|
208
221
|
*/
|
|
209
|
-
async getTotalSupply(vaultAddress) {
|
|
210
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
222
|
+
async getTotalSupply(vaultAddress, isETHVault) {
|
|
223
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
211
224
|
return vault.totalSupply();
|
|
212
225
|
}
|
|
213
226
|
/**
|
|
214
227
|
* Converts assets to shares
|
|
215
228
|
* @param vaultAddress The vault address
|
|
216
229
|
* @param assets Amount of assets
|
|
230
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
217
231
|
* @returns Equivalent shares
|
|
218
232
|
*/
|
|
219
|
-
async convertToShares(vaultAddress, assets) {
|
|
220
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
233
|
+
async convertToShares(vaultAddress, assets, isETHVault) {
|
|
234
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
221
235
|
return vault.convertToShares(assets);
|
|
222
236
|
}
|
|
223
237
|
/**
|
|
224
238
|
* Converts shares to assets
|
|
225
239
|
* @param vaultAddress The vault address
|
|
226
240
|
* @param shares Amount of shares
|
|
241
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
227
242
|
* @returns Equivalent assets
|
|
228
243
|
*/
|
|
229
|
-
async convertToAssets(vaultAddress, shares) {
|
|
230
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
244
|
+
async convertToAssets(vaultAddress, shares, isETHVault) {
|
|
245
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
231
246
|
return vault.convertToAssets(shares);
|
|
232
247
|
}
|
|
233
248
|
/**
|
|
234
249
|
* Preview deposit - returns shares that would be minted
|
|
235
250
|
* @param vaultAddress The vault address
|
|
236
251
|
* @param assets Amount of assets to deposit
|
|
252
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
237
253
|
* @returns Shares that would be minted
|
|
238
254
|
*/
|
|
239
|
-
async previewDeposit(vaultAddress, assets) {
|
|
240
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
255
|
+
async previewDeposit(vaultAddress, assets, isETHVault) {
|
|
256
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
241
257
|
return vault.previewDeposit(assets);
|
|
242
258
|
}
|
|
243
259
|
/**
|
|
244
260
|
* Preview mint - returns assets required for shares
|
|
245
261
|
* @param vaultAddress The vault address
|
|
246
262
|
* @param shares Amount of shares to mint
|
|
263
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
247
264
|
* @returns Assets required
|
|
248
265
|
*/
|
|
249
|
-
async previewMint(vaultAddress, shares) {
|
|
250
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
266
|
+
async previewMint(vaultAddress, shares, isETHVault) {
|
|
267
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
251
268
|
return vault.previewMint(shares);
|
|
252
269
|
}
|
|
253
270
|
/**
|
|
254
271
|
* Preview redeem - returns assets that would be received
|
|
255
272
|
* @param vaultAddress The vault address
|
|
256
273
|
* @param shares Amount of shares to redeem
|
|
274
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
257
275
|
* @returns Assets that would be received
|
|
258
276
|
*/
|
|
259
|
-
async previewRedeem(vaultAddress, shares) {
|
|
260
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
277
|
+
async previewRedeem(vaultAddress, shares, isETHVault) {
|
|
278
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
261
279
|
return vault.previewRedeem(shares);
|
|
262
280
|
}
|
|
263
281
|
/**
|
|
264
282
|
* Preview withdraw - returns shares that would be burned
|
|
265
283
|
* @param vaultAddress The vault address
|
|
266
284
|
* @param assets Amount of assets to withdraw
|
|
285
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
267
286
|
* @returns Shares that would be burned
|
|
268
287
|
*/
|
|
269
|
-
async previewWithdraw(vaultAddress, assets) {
|
|
270
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
288
|
+
async previewWithdraw(vaultAddress, assets, isETHVault) {
|
|
289
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
271
290
|
return vault.previewWithdraw(assets);
|
|
272
291
|
}
|
|
273
292
|
/**
|
|
274
293
|
* Gets max deposit for an account
|
|
275
294
|
* @param vaultAddress The vault address
|
|
276
295
|
* @param account The account address
|
|
296
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
277
297
|
* @returns Maximum deposit amount
|
|
278
298
|
*/
|
|
279
|
-
async maxDeposit(vaultAddress, account) {
|
|
280
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
299
|
+
async maxDeposit(vaultAddress, account, isETHVault) {
|
|
300
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
281
301
|
return vault.maxDeposit(account);
|
|
282
302
|
}
|
|
283
303
|
/**
|
|
284
304
|
* Gets max mint for an account
|
|
285
305
|
* @param vaultAddress The vault address
|
|
286
306
|
* @param account The account address
|
|
307
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
287
308
|
* @returns Maximum mint amount
|
|
288
309
|
*/
|
|
289
|
-
async maxMint(vaultAddress, account) {
|
|
290
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
310
|
+
async maxMint(vaultAddress, account, isETHVault) {
|
|
311
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
291
312
|
return vault.maxMint(account);
|
|
292
313
|
}
|
|
293
314
|
/**
|
|
294
315
|
* Gets max redeem for an account
|
|
295
316
|
* @param vaultAddress The vault address
|
|
296
317
|
* @param account The account address
|
|
318
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
297
319
|
* @returns Maximum redeem amount
|
|
298
320
|
*/
|
|
299
|
-
async maxRedeem(vaultAddress, account) {
|
|
300
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
321
|
+
async maxRedeem(vaultAddress, account, isETHVault) {
|
|
322
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
301
323
|
return vault.maxRedeem(account);
|
|
302
324
|
}
|
|
303
325
|
/**
|
|
304
326
|
* Gets max withdraw for an account
|
|
305
327
|
* @param vaultAddress The vault address
|
|
306
328
|
* @param account The account address
|
|
329
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
307
330
|
* @returns Maximum withdraw amount
|
|
308
331
|
*/
|
|
309
|
-
async maxWithdraw(vaultAddress, account) {
|
|
310
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
332
|
+
async maxWithdraw(vaultAddress, account, isETHVault) {
|
|
333
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
311
334
|
return vault.maxWithdraw(account);
|
|
312
335
|
}
|
|
313
336
|
// ========== User Position Methods ==========
|
|
@@ -315,10 +338,11 @@ class EVMVaultReader {
|
|
|
315
338
|
* Gets the share balance for an account
|
|
316
339
|
* @param vaultAddress The vault address
|
|
317
340
|
* @param account The account address
|
|
341
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
318
342
|
* @returns Share balance
|
|
319
343
|
*/
|
|
320
|
-
async balanceOf(vaultAddress, account) {
|
|
321
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
344
|
+
async balanceOf(vaultAddress, account, isETHVault) {
|
|
345
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
322
346
|
return vault.balanceOf(account);
|
|
323
347
|
}
|
|
324
348
|
/**
|
|
@@ -326,20 +350,22 @@ class EVMVaultReader {
|
|
|
326
350
|
* @param vaultAddress The vault address
|
|
327
351
|
* @param owner The owner address
|
|
328
352
|
* @param spender The spender address
|
|
353
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
329
354
|
* @returns Allowance amount
|
|
330
355
|
*/
|
|
331
|
-
async allowance(vaultAddress, owner, spender) {
|
|
332
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
356
|
+
async allowance(vaultAddress, owner, spender, isETHVault) {
|
|
357
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
333
358
|
return vault.allowance(owner, spender);
|
|
334
359
|
}
|
|
335
360
|
/**
|
|
336
361
|
* Gets the account state including pending withdrawals
|
|
337
362
|
* @param vaultAddress The vault address
|
|
338
363
|
* @param account The account address
|
|
364
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
339
365
|
* @returns Account state
|
|
340
366
|
*/
|
|
341
|
-
async getAccountState(vaultAddress, account) {
|
|
342
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
367
|
+
async getAccountState(vaultAddress, account, isETHVault) {
|
|
368
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
343
369
|
const state = await vault.getAccountState(account);
|
|
344
370
|
return {
|
|
345
371
|
totalPendingWithdrawalShares: state.totalPendingWithdrawalShares,
|
|
@@ -355,13 +381,14 @@ class EVMVaultReader {
|
|
|
355
381
|
* Gets complete user position in a vault
|
|
356
382
|
* @param vaultAddress The vault address
|
|
357
383
|
* @param account The account address
|
|
384
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
358
385
|
* @returns Complete user position
|
|
359
386
|
*/
|
|
360
|
-
async getUserPosition(vaultAddress, account) {
|
|
361
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
387
|
+
async getUserPosition(vaultAddress, account, isETHVault) {
|
|
388
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
362
389
|
const [shareBalance, accountState, maxDepositVal, maxMintVal, maxRedeemVal, maxWithdrawVal] = await Promise.all([
|
|
363
390
|
vault.balanceOf(account),
|
|
364
|
-
this.getAccountState(vaultAddress, account),
|
|
391
|
+
this.getAccountState(vaultAddress, account, isETHVault),
|
|
365
392
|
vault.maxDeposit(account),
|
|
366
393
|
vault.maxMint(account),
|
|
367
394
|
vault.maxRedeem(account),
|
|
@@ -383,20 +410,22 @@ class EVMVaultReader {
|
|
|
383
410
|
/**
|
|
384
411
|
* Gets the number of pending withdrawal requests
|
|
385
412
|
* @param vaultAddress The vault address
|
|
413
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
386
414
|
* @returns Count of pending withdrawals
|
|
387
415
|
*/
|
|
388
|
-
async getPendingWithdrawalsCount(vaultAddress) {
|
|
389
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
416
|
+
async getPendingWithdrawalsCount(vaultAddress, isETHVault) {
|
|
417
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
390
418
|
return vault.getPendingWithdrawalsLength();
|
|
391
419
|
}
|
|
392
420
|
/**
|
|
393
421
|
* Gets a pending withdrawal request by index
|
|
394
422
|
* @param vaultAddress The vault address
|
|
395
423
|
* @param index The index in the pending withdrawals queue
|
|
424
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
396
425
|
* @returns Withdrawal request details
|
|
397
426
|
*/
|
|
398
|
-
async getPendingWithdrawal(vaultAddress, index) {
|
|
399
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
427
|
+
async getPendingWithdrawal(vaultAddress, index, isETHVault) {
|
|
428
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
400
429
|
const request = await vault.getPendingWithdrawal(index);
|
|
401
430
|
return {
|
|
402
431
|
owner: request.owner,
|
|
@@ -410,14 +439,15 @@ class EVMVaultReader {
|
|
|
410
439
|
/**
|
|
411
440
|
* Gets all pending withdrawal requests for a vault
|
|
412
441
|
* @param vaultAddress The vault address
|
|
442
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
413
443
|
* @returns Array of withdrawal requests
|
|
414
444
|
*/
|
|
415
|
-
async getAllPendingWithdrawals(vaultAddress) {
|
|
416
|
-
const count = await this.getPendingWithdrawalsCount(vaultAddress);
|
|
445
|
+
async getAllPendingWithdrawals(vaultAddress, isETHVault) {
|
|
446
|
+
const count = await this.getPendingWithdrawalsCount(vaultAddress, isETHVault);
|
|
417
447
|
const requests = [];
|
|
418
448
|
const promises = [];
|
|
419
449
|
for (let i = 0n; i < count; i++) {
|
|
420
|
-
promises.push(this.getPendingWithdrawal(vaultAddress, i));
|
|
450
|
+
promises.push(this.getPendingWithdrawal(vaultAddress, i, isETHVault));
|
|
421
451
|
}
|
|
422
452
|
const results = await Promise.all(promises);
|
|
423
453
|
requests.push(...results);
|
|
@@ -428,10 +458,11 @@ class EVMVaultReader {
|
|
|
428
458
|
* Checks if an address is a sub-account
|
|
429
459
|
* @param vaultAddress The vault address
|
|
430
460
|
* @param account The account to check
|
|
461
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
431
462
|
* @returns True if the account is a sub-account
|
|
432
463
|
*/
|
|
433
|
-
async isSubAccount(vaultAddress, account) {
|
|
434
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
464
|
+
async isSubAccount(vaultAddress, account, isETHVault) {
|
|
465
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
435
466
|
return vault.subAccounts(account);
|
|
436
467
|
}
|
|
437
468
|
// ========== Token Balance Methods ==========
|
|
@@ -439,10 +470,11 @@ class EVMVaultReader {
|
|
|
439
470
|
* Gets the underlying token balance for an account
|
|
440
471
|
* @param vaultAddress The vault address
|
|
441
472
|
* @param account The account address
|
|
473
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
442
474
|
* @returns Token balance
|
|
443
475
|
*/
|
|
444
|
-
async getUnderlyingTokenBalance(vaultAddress, account) {
|
|
445
|
-
const assetAddress = await this.getAsset(vaultAddress);
|
|
476
|
+
async getUnderlyingTokenBalance(vaultAddress, account, isETHVault) {
|
|
477
|
+
const assetAddress = await this.getAsset(vaultAddress, isETHVault);
|
|
446
478
|
const token = this.getERC20Contract(assetAddress);
|
|
447
479
|
return token.balanceOf(account);
|
|
448
480
|
}
|
|
@@ -450,10 +482,11 @@ class EVMVaultReader {
|
|
|
450
482
|
* Gets the underlying token allowance for the vault
|
|
451
483
|
* @param vaultAddress The vault address
|
|
452
484
|
* @param owner The token owner
|
|
485
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
453
486
|
* @returns Allowance for the vault
|
|
454
487
|
*/
|
|
455
|
-
async getUnderlyingTokenAllowance(vaultAddress, owner) {
|
|
456
|
-
const assetAddress = await this.getAsset(vaultAddress);
|
|
488
|
+
async getUnderlyingTokenAllowance(vaultAddress, owner, isETHVault) {
|
|
489
|
+
const assetAddress = await this.getAsset(vaultAddress, isETHVault);
|
|
457
490
|
const token = this.getERC20Contract(assetAddress);
|
|
458
491
|
return token.allowance(owner, vaultAddress);
|
|
459
492
|
}
|
|
@@ -494,10 +527,11 @@ class EVMVaultReader {
|
|
|
494
527
|
/**
|
|
495
528
|
* Gets the chain timestamp in milliseconds
|
|
496
529
|
* @param vaultAddress The vault address
|
|
530
|
+
* @param isETHVault If true, uses EmberETHVault ABI
|
|
497
531
|
* @returns Chain timestamp in ms
|
|
498
532
|
*/
|
|
499
|
-
async getChainTimestampMs(vaultAddress) {
|
|
500
|
-
const vault = this.getVaultContract(vaultAddress);
|
|
533
|
+
async getChainTimestampMs(vaultAddress, isETHVault) {
|
|
534
|
+
const vault = this.getVaultContract(vaultAddress, isETHVault);
|
|
501
535
|
return vault.getChainTimestampMs();
|
|
502
536
|
}
|
|
503
537
|
// ========== Batch Query Methods ==========
|