@augustdigital/sdk 4.24.3-alpha.2 → 4.24.3
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/lib/abis/LendingPoolV2.d.ts +1413 -55
- package/lib/abis/LendingPoolV2.js.map +1 -1
- package/lib/abis/LendingPoolV3.d.ts +1677 -35
- package/lib/abis/LendingPoolV3.js.map +1 -1
- package/lib/abis/RewardDistributor.d.ts +267 -46
- package/lib/abis/RewardDistributor.js.map +1 -1
- package/lib/abis/TokenizedVaultV2DepositWithPermit.d.ts +1456 -78
- package/lib/abis/TokenizedVaultV2DepositWithPermit.js.map +1 -1
- package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.d.ts +454 -0
- package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.js +327 -0
- package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.js.map +1 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAllocation.d.ts +1466 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAllocation.js +1092 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAllocation.js.map +1 -0
- package/lib/abis/index.d.ts +2 -0
- package/lib/abis/index.js +2 -0
- package/lib/abis/index.js.map +1 -1
- package/lib/adapters/evm/index.d.ts +20 -1
- package/lib/adapters/evm/index.js +16 -0
- package/lib/adapters/evm/index.js.map +1 -1
- package/lib/adapters/solana/getters.js +2 -1
- package/lib/adapters/solana/getters.js.map +1 -1
- package/lib/adapters/solana/index.js.map +1 -1
- package/lib/adapters/sui/index.js.map +1 -1
- package/lib/adapters/sui/transformer.js +4 -1
- package/lib/adapters/sui/transformer.js.map +1 -1
- package/lib/core/constants/core.d.ts +1 -1
- package/lib/core/constants/core.js +4 -4
- package/lib/core/constants/core.js.map +1 -1
- package/lib/core/constants/vaults.d.ts +2 -0
- package/lib/core/constants/vaults.js +3 -1
- package/lib/core/constants/vaults.js.map +1 -1
- package/lib/core/constants/web3.js +6 -1
- package/lib/core/constants/web3.js.map +1 -1
- package/lib/core/fetcher.d.ts +2 -3
- package/lib/core/fetcher.js +7 -5
- package/lib/core/fetcher.js.map +1 -1
- package/lib/core/helpers/core.d.ts +1 -1
- package/lib/core/helpers/vaults.d.ts +1 -0
- package/lib/core/helpers/vaults.js +19 -1
- package/lib/core/helpers/vaults.js.map +1 -1
- package/lib/core/helpers/web3.d.ts +6 -4
- package/lib/core/helpers/web3.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/main.d.ts +5 -1
- package/lib/main.js +13 -0
- package/lib/main.js.map +1 -1
- package/lib/modules/sub-accounts/fetcher.d.ts +11 -0
- package/lib/modules/sub-accounts/fetcher.js +55 -0
- package/lib/modules/sub-accounts/fetcher.js.map +1 -0
- package/lib/modules/sub-accounts/index.d.ts +2 -0
- package/lib/modules/sub-accounts/index.js +19 -0
- package/lib/modules/sub-accounts/index.js.map +1 -0
- package/lib/modules/sub-accounts/main.d.ts +118 -0
- package/lib/modules/sub-accounts/main.js +44 -0
- package/lib/modules/sub-accounts/main.js.map +1 -0
- package/lib/modules/sub-accounts/utils.d.ts +103 -0
- package/lib/modules/sub-accounts/utils.js +109 -0
- package/lib/modules/sub-accounts/utils.js.map +1 -0
- package/lib/modules/vaults/adapter.helpers.js +2 -1
- package/lib/modules/vaults/adapter.helpers.js.map +1 -1
- package/lib/modules/vaults/getters.js +129 -87
- package/lib/modules/vaults/getters.js.map +1 -1
- package/lib/modules/vaults/main.js +9 -6
- package/lib/modules/vaults/main.js.map +1 -1
- package/lib/modules/vaults/read.actions.d.ts +21 -3
- package/lib/modules/vaults/read.actions.js +130 -1
- package/lib/modules/vaults/read.actions.js.map +1 -1
- package/lib/modules/vaults/utils.js +11 -5
- package/lib/modules/vaults/utils.js.map +1 -1
- package/lib/modules/vaults/write.actions.js +8 -7
- package/lib/modules/vaults/write.actions.js.map +1 -1
- package/lib/services/subgraph/vaults.js +6 -6
- package/lib/services/subgraph/vaults.js.map +1 -1
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +2 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/sub-accounts.d.ts +104 -0
- package/lib/types/sub-accounts.js +3 -0
- package/lib/types/sub-accounts.js.map +1 -0
- package/lib/types/typed-contract.d.ts +38 -0
- package/lib/types/typed-contract.js +3 -0
- package/lib/types/typed-contract.js.map +1 -0
- package/lib/types/vaults.d.ts +2 -0
- package/lib/types/vaults.js.map +1 -1
- package/lib/types/webserver.d.ts +2 -0
- package/package.json +12 -12
- package/lib/abis/TokenizedVaultV2WithDepositWithPermit.d.ts +0 -85
- package/lib/abis/TokenizedVaultV2WithDepositWithPermit.js +0 -1878
- package/lib/abis/TokenizedVaultV2WithDepositWithPermit.js.map +0 -1
- package/lib/core/constants.adapters.d.ts +0 -117
- package/lib/core/constants.adapters.js +0 -160
- package/lib/core/constants.adapters.js.map +0 -1
- package/lib/core/constants.core.d.ts +0 -78
- package/lib/core/constants.core.js +0 -75
- package/lib/core/constants.core.js.map +0 -1
- package/lib/core/constants.vaults.d.ts +0 -64
- package/lib/core/constants.vaults.js +0 -156
- package/lib/core/constants.vaults.js.map +0 -1
- package/lib/core/constants.web3.d.ts +0 -31
- package/lib/core/constants.web3.js +0 -100
- package/lib/core/constants.web3.js.map +0 -1
- package/lib/core/helpers.adapters.d.ts +0 -9
- package/lib/core/helpers.adapters.js +0 -28
- package/lib/core/helpers.adapters.js.map +0 -1
- package/lib/core/helpers.core.d.ts +0 -48
- package/lib/core/helpers.core.js +0 -210
- package/lib/core/helpers.core.js.map +0 -1
- package/lib/core/helpers.signer.d.ts +0 -9
- package/lib/core/helpers.signer.js +0 -54
- package/lib/core/helpers.signer.js.map +0 -1
- package/lib/core/helpers.vaults.d.ts +0 -36
- package/lib/core/helpers.vaults.js +0 -145
- package/lib/core/helpers.vaults.js.map +0 -1
- package/lib/core/helpers.web3.d.ts +0 -95
- package/lib/core/helpers.web3.js +0 -376
- package/lib/core/helpers.web3.js.map +0 -1
- package/lib/verify.d.ts +0 -2
- package/lib/verify.js +0 -33
- package/lib/verify.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformSubaccountSummary = void 0;
|
|
4
|
+
const transformSubaccountSummary = (response) => {
|
|
5
|
+
return {
|
|
6
|
+
address: response.address,
|
|
7
|
+
name: response.name,
|
|
8
|
+
type: response.type,
|
|
9
|
+
portfolio: {
|
|
10
|
+
tokens: response.portfolio.tokens.map((t) => ({
|
|
11
|
+
value: t.value,
|
|
12
|
+
balance: t.balance,
|
|
13
|
+
token: {
|
|
14
|
+
type: t.token.type,
|
|
15
|
+
name: t.token.name,
|
|
16
|
+
address: t.token.address,
|
|
17
|
+
chain: t.token.chain,
|
|
18
|
+
symbol: t.token.symbol,
|
|
19
|
+
decimals: t.token.decimals,
|
|
20
|
+
imgUrl: t.token.img_url,
|
|
21
|
+
},
|
|
22
|
+
})),
|
|
23
|
+
marginBalances: response.portfolio.margin_balances,
|
|
24
|
+
collateralBalances: response.portfolio.collateral_balances,
|
|
25
|
+
cefiPositions: response.portfolio.cefi_positions,
|
|
26
|
+
defiPositions: response.portfolio.defi_positions,
|
|
27
|
+
trsPositions: response.portfolio.trs_positions,
|
|
28
|
+
strategyContractPositions: response.portfolio.strategy_contract_positions,
|
|
29
|
+
legacyHedgerPositions: response.portfolio.legacy_hedger_positions,
|
|
30
|
+
otcPositions: response.portfolio.otc_positions,
|
|
31
|
+
totalValue: response.portfolio.total_value,
|
|
32
|
+
discountedValue: response.portfolio.discounted_value,
|
|
33
|
+
},
|
|
34
|
+
loanbook: {
|
|
35
|
+
loans: response.loanbook.loans.map((loan) => ({
|
|
36
|
+
subaccountAddress: loan.subaccount_address,
|
|
37
|
+
book: {
|
|
38
|
+
address: loan.book.address,
|
|
39
|
+
lender: loan.book.lender,
|
|
40
|
+
borrower: loan.book.borrower,
|
|
41
|
+
state: loan.book.state,
|
|
42
|
+
totalRepaid: loan.book.total_repaid,
|
|
43
|
+
principalToken: {
|
|
44
|
+
type: loan.book.principal_token.type,
|
|
45
|
+
name: loan.book.principal_token.name,
|
|
46
|
+
address: loan.book.principal_token.address,
|
|
47
|
+
chain: loan.book.principal_token.chain,
|
|
48
|
+
symbol: loan.book.principal_token.symbol,
|
|
49
|
+
decimals: loan.book.principal_token.decimals,
|
|
50
|
+
imgUrl: loan.book.principal_token.img_url,
|
|
51
|
+
tokenType: loan.book.principal_token.token_type,
|
|
52
|
+
discountFactor: loan.book.principal_token.discount_factor,
|
|
53
|
+
price: loan.book.principal_token.price,
|
|
54
|
+
},
|
|
55
|
+
principalAmount: loan.book.principal_amount,
|
|
56
|
+
interestAmount: loan.book.interest_amount,
|
|
57
|
+
upcomingPayment: {
|
|
58
|
+
amount: loan.book.upcoming_payment.amount,
|
|
59
|
+
dueDate: loan.book.upcoming_payment.due_date,
|
|
60
|
+
},
|
|
61
|
+
apr: loan.book.apr,
|
|
62
|
+
initialPrincipalAmount: loan.book.initial_principal_amount,
|
|
63
|
+
deployedDate: loan.book.deployed_date,
|
|
64
|
+
paymentInterval: loan.book.payment_interval,
|
|
65
|
+
totalInterestPaymentFees: loan.book.total_interest_payment_fees,
|
|
66
|
+
},
|
|
67
|
+
isBorrow: loan.is_borrow,
|
|
68
|
+
debtInfo: {
|
|
69
|
+
interestOwed: loan.debt_info.interest_owed,
|
|
70
|
+
principalDebtOwed: loan.debt_info.principal_debt_owed,
|
|
71
|
+
interestRepaid: loan.debt_info.interest_repaid,
|
|
72
|
+
},
|
|
73
|
+
creditInfo: {
|
|
74
|
+
netInterestOwed: loan.credit_info.net_interest_owed,
|
|
75
|
+
principalDebtOwed: loan.credit_info.principal_debt_owed,
|
|
76
|
+
netInterestRepaid: loan.credit_info.net_interest_repaid,
|
|
77
|
+
},
|
|
78
|
+
})),
|
|
79
|
+
totalDebt: response.loanbook.total_debt,
|
|
80
|
+
totalCredit: response.loanbook.total_credit,
|
|
81
|
+
aggregatesByToken: response.loanbook.aggregates_by_token,
|
|
82
|
+
},
|
|
83
|
+
chains: response.chains.map((c) => ({
|
|
84
|
+
name: c.name,
|
|
85
|
+
chainId: c.chain_id,
|
|
86
|
+
})),
|
|
87
|
+
tokens: response.tokens.map((t) => ({
|
|
88
|
+
type: t.type,
|
|
89
|
+
name: t.name,
|
|
90
|
+
address: t.address,
|
|
91
|
+
chain: t.chain,
|
|
92
|
+
symbol: t.symbol,
|
|
93
|
+
decimals: t.decimals,
|
|
94
|
+
imgUrl: t.img_url,
|
|
95
|
+
price: t.price,
|
|
96
|
+
rawBalance: t.raw_balance,
|
|
97
|
+
balance: t.balance,
|
|
98
|
+
value: t.value,
|
|
99
|
+
})),
|
|
100
|
+
totalAccountValue: response.total_account_value,
|
|
101
|
+
totalCollateralValue: response.total_collateral_value,
|
|
102
|
+
totalLoanValue: response.total_loan_value,
|
|
103
|
+
healthFactor: response.health_factor,
|
|
104
|
+
netAccountValue: response.net_account_value,
|
|
105
|
+
totalEquityValue: response.total_equity_value,
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
exports.transformSubaccountSummary = transformSubaccountSummary;
|
|
109
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src.ts/modules/sub-accounts/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,7 +56,8 @@ async function buildNativeDepositTransaction({ signer, srcToken, amount, poolNam
|
|
|
56
56
|
const wrapperContract = (0, core_1.createContract)({
|
|
57
57
|
address: adapterConfig.wrapperAddress,
|
|
58
58
|
provider: signer,
|
|
59
|
-
abi: adapterConfig.abi ||
|
|
59
|
+
abi: (adapterConfig.abi ||
|
|
60
|
+
abis_1.ABI_WRAPPER_ADAPTER),
|
|
60
61
|
});
|
|
61
62
|
if (poolName === adapters_1.POOL_NAMES.ETH_TREEHOUSE_GROWTH) {
|
|
62
63
|
if (isNative) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.helpers.js","sourceRoot":"","sources":["../../../src.ts/modules/vaults/adapter.helpers.ts"],"names":[],"mappings":";;AA6BA,4CAoCC;AAQD,wEA4CC;AAKD,
|
|
1
|
+
{"version":3,"file":"adapter.helpers.js","sourceRoot":"","sources":["../../../src.ts/modules/vaults/adapter.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -199,13 +199,13 @@ async function getVaultLoans(vault, options) {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
async function getVaultAllocations(vault, options) {
|
|
202
|
-
|
|
203
|
-
|
|
202
|
+
const protocolExposure = [];
|
|
203
|
+
const tokenExposure = [];
|
|
204
204
|
let cefiExposure = [];
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
const cefiBorrowerResponses = {};
|
|
206
|
+
const otcPositions = {};
|
|
207
|
+
const defiPerBorrower = {};
|
|
208
|
+
const exposurePerCategory = {
|
|
209
209
|
supplying: [],
|
|
210
210
|
borrowing: [],
|
|
211
211
|
wallet: [],
|
|
@@ -215,7 +215,7 @@ async function getVaultAllocations(vault, options) {
|
|
|
215
215
|
lending: [],
|
|
216
216
|
loanBalance: 0,
|
|
217
217
|
};
|
|
218
|
-
|
|
218
|
+
const netValue = { value: 0 };
|
|
219
219
|
let debankErr = false;
|
|
220
220
|
let unfilteredTokens = [];
|
|
221
221
|
let uniqueBorrowers;
|
|
@@ -237,7 +237,7 @@ async function getVaultAllocations(vault, options) {
|
|
|
237
237
|
catch (e) {
|
|
238
238
|
core_1.Logger.log.error('getVaultAllocations:borrowers', e);
|
|
239
239
|
}
|
|
240
|
-
const hardcodedSubaccount = Object.values(core_1.VAULT_ALLOCATION_SUBACCOUNTS).find((entry) => entry.address.toLowerCase() === vault.toLowerCase());
|
|
240
|
+
const hardcodedSubaccount = Object.values(core_1.VAULT_ALLOCATION_SUBACCOUNTS).find((entry) => entry.address.toLowerCase() === vault.toLowerCase() && !entry.useDebank);
|
|
241
241
|
if (hardcodedSubaccount) {
|
|
242
242
|
const debankRes = await (0, debank_1.fetchDebankResponse)(hardcodedSubaccount.subaccount);
|
|
243
243
|
if (debankRes === false) {
|
|
@@ -364,27 +364,20 @@ async function getVaultAvailableRedemptions({ vault, wallet, options, }) {
|
|
|
364
364
|
};
|
|
365
365
|
}
|
|
366
366
|
const version = (0, core_1.getVaultVersionV2)(tokenizedVault);
|
|
367
|
-
let abi;
|
|
368
367
|
let decimals;
|
|
369
|
-
switch (version) {
|
|
370
|
-
case 'evm-2': {
|
|
371
|
-
abi = TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2;
|
|
372
|
-
decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault), false);
|
|
373
|
-
break;
|
|
374
|
-
}
|
|
375
|
-
default: {
|
|
376
|
-
abi = abis_1.ABI_LENDING_POOL_V2;
|
|
377
|
-
decimals = await (0, core_1.getDecimals)(provider, vault);
|
|
378
|
-
break;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
368
|
const vaultContract = (0, core_1.createContract)({
|
|
382
369
|
address: vault,
|
|
383
|
-
abi:
|
|
370
|
+
abi: abis_1.ABI_LENDING_POOL_V2,
|
|
384
371
|
provider,
|
|
385
372
|
});
|
|
386
|
-
|
|
387
|
-
|
|
373
|
+
if (version === 'evm-2') {
|
|
374
|
+
decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault), false);
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
decimals = await (0, core_1.getDecimals)(provider, vault);
|
|
378
|
+
}
|
|
379
|
+
const ld = await vaultContract.lagDuration();
|
|
380
|
+
const lagDuration = Number(ld);
|
|
388
381
|
const { withdrawalRequesteds, withdrawalProcesseds } = await (0, subgraph_1.getSubgraphAllWithdrawals)(vault, provider);
|
|
389
382
|
const availableRedemptions = [];
|
|
390
383
|
const pendingRedemptions = [];
|
|
@@ -558,7 +551,7 @@ async function getVaultAvailableRedemptions({ vault, wallet, options, }) {
|
|
|
558
551
|
}
|
|
559
552
|
}
|
|
560
553
|
else {
|
|
561
|
-
if (
|
|
554
|
+
if (foundRedemptionAgainstClaim) {
|
|
562
555
|
availableRedemptions.push({
|
|
563
556
|
id: ev.transactionHash_ || ev.id,
|
|
564
557
|
hash: ev.transactionHash_ || ev.id,
|
|
@@ -613,7 +606,7 @@ async function getVaultRedemptionHistory({ vault, wallet, options, }) {
|
|
|
613
606
|
abi: abis_1.ABI_LENDING_POOL_V2,
|
|
614
607
|
provider,
|
|
615
608
|
});
|
|
616
|
-
|
|
609
|
+
const logPromises = [];
|
|
617
610
|
const currentBlock = await provider.getBlockNumber();
|
|
618
611
|
let startingBlock = currentBlock - (0, core_1.determineBlockSkipInternal)(chainId);
|
|
619
612
|
let endBlock = currentBlock;
|
|
@@ -699,41 +692,28 @@ async function getVaultPositions({ vault, wallet, solanaWallet, options, }) {
|
|
|
699
692
|
}
|
|
700
693
|
const provider = (0, core_1.createProvider)(options.rpcUrl);
|
|
701
694
|
let decimals;
|
|
702
|
-
let abi;
|
|
703
695
|
const version = (0, core_1.getVaultVersionV2)(v);
|
|
704
|
-
switch (version) {
|
|
705
|
-
case 'evm-2': {
|
|
706
|
-
decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault), false);
|
|
707
|
-
abi = TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2;
|
|
708
|
-
break;
|
|
709
|
-
}
|
|
710
|
-
default: {
|
|
711
|
-
decimals = await (0, core_1.getDecimals)(provider, vault);
|
|
712
|
-
abi = abis_1.ABI_LENDING_POOL_V2;
|
|
713
|
-
break;
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
696
|
const vaultContract = (0, core_1.createContract)({
|
|
717
697
|
provider,
|
|
718
|
-
abi:
|
|
698
|
+
abi: abis_1.ABI_LENDING_POOL_V2,
|
|
719
699
|
address: v.address,
|
|
720
700
|
});
|
|
721
701
|
let bal = BigInt(0);
|
|
722
|
-
if (
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
702
|
+
if (version === 'evm-2') {
|
|
703
|
+
decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault), false);
|
|
704
|
+
if (wallet && (0, ethers_1.isAddress)(wallet)) {
|
|
705
|
+
const receiptContract = (0, core_1.createContract)({
|
|
706
|
+
provider,
|
|
707
|
+
abi: TokenizedVaultV2Receipt_1.ABI_TOKENIZED_VAULT_V2_RECEIPT,
|
|
708
|
+
address: await (0, core_1.getReceiptTokenAddress)(provider, vault),
|
|
709
|
+
});
|
|
710
|
+
bal = await receiptContract.balanceOf(wallet);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
else {
|
|
714
|
+
decimals = await (0, core_1.getDecimals)(provider, vault);
|
|
715
|
+
if (wallet && (0, ethers_1.isAddress)(wallet)) {
|
|
716
|
+
bal = await vaultContract.balanceOf(wallet);
|
|
737
717
|
}
|
|
738
718
|
}
|
|
739
719
|
const balance = (0, core_1.toNormalizedBn)(bal, decimals);
|
|
@@ -802,7 +782,7 @@ async function getVaultApy({ vault, options, historical, }) {
|
|
|
802
782
|
}
|
|
803
783
|
const baseUrl = core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.historicalApy(vault);
|
|
804
784
|
const historicalApy = await (0, core_1.fetchAugustPublic)(`${baseUrl}${paramBuilder(historical, baseUrl)}`, {
|
|
805
|
-
headers:
|
|
785
|
+
headers: options?.headers
|
|
806
786
|
? options?.headers
|
|
807
787
|
: undefined,
|
|
808
788
|
});
|
|
@@ -940,7 +920,7 @@ async function getVaultTvl({ vault, options, historical, }) {
|
|
|
940
920
|
abi: TokenizedVaultV2Receipt_1.ABI_TOKENIZED_VAULT_V2_RECEIPT,
|
|
941
921
|
provider,
|
|
942
922
|
});
|
|
943
|
-
const totalSupply = await receiptTokenContract.
|
|
923
|
+
const totalSupply = await receiptTokenContract.totalSupply();
|
|
944
924
|
return [
|
|
945
925
|
{
|
|
946
926
|
value: (0, core_1.toNormalizedBn)(totalSupply, receiptTokenDecimals),
|
|
@@ -959,7 +939,7 @@ async function getVaultTvl({ vault, options, historical, }) {
|
|
|
959
939
|
default: {
|
|
960
940
|
const vaultContract = (0, core_1.createContract)({
|
|
961
941
|
address: vault,
|
|
962
|
-
abi:
|
|
942
|
+
abi: abis_1.ABI_LENDING_POOL_V2,
|
|
963
943
|
provider,
|
|
964
944
|
});
|
|
965
945
|
const decimals = await (0, core_1.getDecimals)(provider, vault);
|
|
@@ -1061,14 +1041,14 @@ async function getVaultBorrowerHealthFactor({ vault, options, }) {
|
|
|
1061
1041
|
abi: abis_1.ABI_LOAN,
|
|
1062
1042
|
});
|
|
1063
1043
|
return {
|
|
1064
|
-
borrower: await loanContract.borrower(),
|
|
1044
|
+
borrower: (await loanContract.borrower()),
|
|
1065
1045
|
loan: l,
|
|
1066
1046
|
};
|
|
1067
1047
|
}));
|
|
1068
1048
|
const uniqueBorrowers = [
|
|
1069
1049
|
...new Set(formattedLoansArray.map((l) => l.borrower)),
|
|
1070
1050
|
];
|
|
1071
|
-
|
|
1051
|
+
const borrowerResponses = {};
|
|
1072
1052
|
for (const b of uniqueBorrowers) {
|
|
1073
1053
|
const response = await (0, core_1.fetchAugustWithKey)(options.augustKey, core_1.WEBSERVER_ENDPOINTS.subaccount.health_factor(b));
|
|
1074
1054
|
if (response.status === 200) {
|
|
@@ -1228,7 +1208,7 @@ async function getVaultUserLifetimePnl({ vault, wallet, options, }) {
|
|
|
1228
1208
|
wallet,
|
|
1229
1209
|
options,
|
|
1230
1210
|
}),
|
|
1231
|
-
(0, core_1.fetchTokenizedVault)(vault, options?.headers),
|
|
1211
|
+
(0, core_1.fetchTokenizedVault)(vault, options?.headers, false, false),
|
|
1232
1212
|
]);
|
|
1233
1213
|
const tokenizedVault = tokenizedVaultResult?.[0];
|
|
1234
1214
|
if (!tokenizedVault) {
|
|
@@ -1243,10 +1223,10 @@ async function getVaultUserLifetimePnl({ vault, wallet, options, }) {
|
|
|
1243
1223
|
const vaultContract = (0, core_1.createContract)({
|
|
1244
1224
|
provider,
|
|
1245
1225
|
address: vault,
|
|
1246
|
-
abi:
|
|
1226
|
+
abi: abis_1.ABI_LENDING_POOL_V2,
|
|
1247
1227
|
});
|
|
1248
1228
|
try {
|
|
1249
|
-
underlyingAssetAddress = await vaultContract.asset();
|
|
1229
|
+
underlyingAssetAddress = (await vaultContract.asset());
|
|
1250
1230
|
const underlyingContract = (0, core_1.createContract)({
|
|
1251
1231
|
provider,
|
|
1252
1232
|
address: underlyingAssetAddress,
|
|
@@ -1267,19 +1247,62 @@ async function getVaultUserLifetimePnl({ vault, wallet, options, }) {
|
|
|
1267
1247
|
}
|
|
1268
1248
|
return { underlyingTokenSymbol, underlyingAssetAddress };
|
|
1269
1249
|
})();
|
|
1270
|
-
|
|
1271
|
-
let
|
|
1250
|
+
const depositsByAsset = new Map();
|
|
1251
|
+
let totalWithdrawalsInShares = BigInt(0);
|
|
1252
|
+
let totalWithdrawalsInAssets = BigInt(0);
|
|
1272
1253
|
for (const historyItem of userHistory) {
|
|
1273
1254
|
const amount = BigInt(historyItem.amount);
|
|
1255
|
+
if ((0, core_1.isBadTransaction)(historyItem.transactionHash_, tokenizedVault.chain)) {
|
|
1256
|
+
continue;
|
|
1257
|
+
}
|
|
1274
1258
|
if (historyItem.type === 'deposit') {
|
|
1275
|
-
|
|
1259
|
+
const assetKey = 'assetIn' in historyItem && typeof historyItem.assetIn === 'string'
|
|
1260
|
+
? historyItem.assetIn.toLowerCase()
|
|
1261
|
+
: 'default';
|
|
1262
|
+
const current = depositsByAsset.get(assetKey) ?? BigInt(0);
|
|
1263
|
+
depositsByAsset.set(assetKey, current + amount);
|
|
1264
|
+
}
|
|
1265
|
+
else if (historyItem.type === 'withdraw-request') {
|
|
1266
|
+
totalWithdrawalsInShares += amount;
|
|
1267
|
+
}
|
|
1268
|
+
else if (historyItem.type === 'withdraw-processed' &&
|
|
1269
|
+
historyItem.isInstant) {
|
|
1270
|
+
totalWithdrawalsInAssets += amount;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
const assetDecimals = new Map();
|
|
1274
|
+
await Promise.all(Array.from(depositsByAsset.keys()).map(async (assetAddress) => {
|
|
1275
|
+
if (assetAddress === 'default') {
|
|
1276
|
+
assetDecimals.set(assetAddress, decimals);
|
|
1276
1277
|
}
|
|
1277
|
-
else
|
|
1278
|
-
|
|
1279
|
-
|
|
1278
|
+
else {
|
|
1279
|
+
const dec = await (0, core_1.getDecimals)(provider, assetAddress, false);
|
|
1280
|
+
assetDecimals.set(assetAddress, dec);
|
|
1280
1281
|
}
|
|
1282
|
+
}));
|
|
1283
|
+
const totalDepositedRaw = new Map();
|
|
1284
|
+
for (const [assetAddress, rawAmount] of depositsByAsset) {
|
|
1285
|
+
const assetDec = assetDecimals.get(assetAddress) ?? decimals;
|
|
1286
|
+
totalDepositedRaw.set(assetAddress, (0, core_1.toNormalizedBn)(rawAmount, assetDec));
|
|
1287
|
+
}
|
|
1288
|
+
const assetPrices = new Map();
|
|
1289
|
+
if (tokenizedVault.chain) {
|
|
1290
|
+
await Promise.all(Array.from(depositsByAsset.keys()).map(async (assetAddress) => {
|
|
1291
|
+
if (assetAddress === 'default') {
|
|
1292
|
+
assetPrices.set(assetAddress, 0);
|
|
1293
|
+
}
|
|
1294
|
+
else {
|
|
1295
|
+
try {
|
|
1296
|
+
const price = await (0, core_1.fetchTokenPriceByAddress)(assetAddress, tokenizedVault.chain, options?.headers);
|
|
1297
|
+
assetPrices.set(assetAddress, price);
|
|
1298
|
+
}
|
|
1299
|
+
catch (error) {
|
|
1300
|
+
core_1.Logger.log.warn('getVaultUserLifetimePnl:fetchAssetPrice', `Failed to fetch price for ${assetAddress}: ${error}`);
|
|
1301
|
+
assetPrices.set(assetAddress, 0);
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
}));
|
|
1281
1305
|
}
|
|
1282
|
-
const totalDeposited = (0, core_1.toNormalizedBn)(totalDepositedRaw, decimals);
|
|
1283
1306
|
const { underlyingTokenSymbol, underlyingAssetAddress } = await underlyingSymbolPromise;
|
|
1284
1307
|
let currentPositionValue = (0, core_1.toNormalizedBn)(0, decimals);
|
|
1285
1308
|
const pricePromise = underlyingAssetAddress && tokenizedVault.chain
|
|
@@ -1292,7 +1315,9 @@ async function getVaultUserLifetimePnl({ vault, wallet, options, }) {
|
|
|
1292
1315
|
});
|
|
1293
1316
|
let sharePriceRaw = BigInt(0);
|
|
1294
1317
|
try {
|
|
1295
|
-
const lpTokenAddress = version === 'evm-2'
|
|
1318
|
+
const lpTokenAddress = version === 'evm-2'
|
|
1319
|
+
? (await vaultContract.lpTokenAddress())
|
|
1320
|
+
: vault;
|
|
1296
1321
|
let currentShares = BigInt(0);
|
|
1297
1322
|
if (version === 'evm-2') {
|
|
1298
1323
|
const lpTokenContract = (0, core_1.createContract)({
|
|
@@ -1329,25 +1354,42 @@ async function getVaultUserLifetimePnl({ vault, wallet, options, }) {
|
|
|
1329
1354
|
currentPositionValue = currentPosition.walletBalance;
|
|
1330
1355
|
}
|
|
1331
1356
|
}
|
|
1332
|
-
let
|
|
1357
|
+
let totalWithdrawnRaw = totalWithdrawalsInAssets;
|
|
1333
1358
|
if (version === 'evm-2' && sharePriceRaw > BigInt(0)) {
|
|
1334
|
-
|
|
1335
|
-
(
|
|
1359
|
+
totalWithdrawnRaw +=
|
|
1360
|
+
(totalWithdrawalsInShares * sharePriceRaw) / BigInt(10 ** decimals);
|
|
1361
|
+
}
|
|
1362
|
+
else {
|
|
1363
|
+
totalWithdrawnRaw += totalWithdrawalsInShares;
|
|
1336
1364
|
}
|
|
1337
|
-
const tokenPriceUsd = await pricePromise;
|
|
1338
|
-
const totalWithdrawnRaw = totalWithdrawalsRequestedInAssetsRaw;
|
|
1339
1365
|
const totalWithdrawn = (0, core_1.toNormalizedBn)(totalWithdrawnRaw, decimals);
|
|
1340
|
-
const
|
|
1341
|
-
const
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1366
|
+
const tokenPriceUsd = await pricePromise;
|
|
1367
|
+
const effectiveTokenPrice = tokenPriceUsd > 0 ? tokenPriceUsd : 1;
|
|
1368
|
+
if (tokenPriceUsd <= 0) {
|
|
1369
|
+
core_1.Logger.log.warn('getVaultUserLifetimePnl:tokenPrice', `Invalid underlying token price: ${tokenPriceUsd}, using fallback of 1`);
|
|
1370
|
+
}
|
|
1371
|
+
let totalDepositedUsd = 0;
|
|
1372
|
+
for (const [assetAddress, normalizedAmount] of totalDepositedRaw) {
|
|
1373
|
+
const assetPrice = assetAddress === 'default'
|
|
1374
|
+
? effectiveTokenPrice
|
|
1375
|
+
: assetPrices.get(assetAddress) || effectiveTokenPrice;
|
|
1376
|
+
totalDepositedUsd += Number(normalizedAmount.normalized) * assetPrice;
|
|
1377
|
+
}
|
|
1378
|
+
const totalWithdrawnUsd = Number(totalWithdrawn.normalized) * effectiveTokenPrice;
|
|
1379
|
+
const currentPositionValueUsd = Number(currentPositionValue.normalized) * effectiveTokenPrice;
|
|
1380
|
+
const lifetimePnlUsd = currentPositionValueUsd + totalWithdrawnUsd - totalDepositedUsd;
|
|
1381
|
+
const scaleFactor = BigInt(10 ** 18);
|
|
1382
|
+
const tokenPriceScaled = BigInt(Math.round(effectiveTokenPrice * Number(scaleFactor)));
|
|
1383
|
+
const totalDepositedUsdScaled = BigInt(Math.round(totalDepositedUsd * Number(scaleFactor)));
|
|
1384
|
+
const totalDepositedNativeRaw = tokenPriceScaled > BigInt(0)
|
|
1385
|
+
? (totalDepositedUsdScaled * BigInt(10 ** decimals)) / tokenPriceScaled
|
|
1386
|
+
: BigInt(0);
|
|
1387
|
+
const totalDeposited = (0, core_1.toNormalizedBn)(totalDepositedNativeRaw, decimals);
|
|
1388
|
+
const lifetimePnlUsdScaled = BigInt(Math.round(lifetimePnlUsd * Number(scaleFactor)));
|
|
1389
|
+
const lifetimePnlRaw = tokenPriceScaled > BigInt(0)
|
|
1390
|
+
? (lifetimePnlUsdScaled * BigInt(10 ** decimals)) / tokenPriceScaled
|
|
1391
|
+
: BigInt(0);
|
|
1347
1392
|
const lifetimePnl = (0, core_1.toNormalizedBn)(lifetimePnlRaw, decimals);
|
|
1348
|
-
const lifetimePnlUsd = currentPositionValueUsd +
|
|
1349
|
-
Number(totalWithdrawalsRequestedInAssets.normalized) * tokenPriceUsd -
|
|
1350
|
-
totalDepositedUsd;
|
|
1351
1393
|
const pnlPercentage = totalDepositedUsd > 0
|
|
1352
1394
|
? Number.parseFloat(((lifetimePnlUsd / totalDepositedUsd) * 100).toFixed(2))
|
|
1353
1395
|
: 0;
|
|
@@ -1559,7 +1601,7 @@ async function getPreviewRedemption({ vault, sharesAmount, options, }) {
|
|
|
1559
1601
|
abi: TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2,
|
|
1560
1602
|
provider,
|
|
1561
1603
|
});
|
|
1562
|
-
const lpTokenAddress = await contract.lpTokenAddress();
|
|
1604
|
+
const lpTokenAddress = (await contract.lpTokenAddress());
|
|
1563
1605
|
const lpTokenContract = (0, core_1.createContract)({
|
|
1564
1606
|
address: lpTokenAddress,
|
|
1565
1607
|
abi: abis_1.ABI_LENDING_POOL_V2,
|