@augustdigital/sdk 4.1.0-alpha → 4.1.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.
Files changed (278) hide show
  1. package/README.md +189 -11
  2. package/lib/abis/Multicall3.js.map +1 -1
  3. package/lib/abis/PoolAdapter.d.ts +36 -76
  4. package/lib/abis/PoolAdapter.js +18 -379
  5. package/lib/abis/PoolAdapter.js.map +1 -1
  6. package/lib/abis/WrapperAdapter.d.ts +71 -60
  7. package/lib/abis/WrapperAdapter.js +41 -114
  8. package/lib/abis/WrapperAdapter.js.map +1 -1
  9. package/lib/abis/index.d.ts +3 -0
  10. package/lib/abis/index.js +3 -0
  11. package/lib/abis/index.js.map +1 -1
  12. package/lib/adapters/evm/getters.d.ts +1 -1
  13. package/lib/adapters/evm/getters.js +26 -37
  14. package/lib/adapters/evm/getters.js.map +1 -1
  15. package/lib/adapters/evm/index.d.ts +8 -6
  16. package/lib/adapters/evm/index.js +27 -21
  17. package/lib/adapters/evm/index.js.map +1 -1
  18. package/lib/adapters/evm/utils.d.ts +2 -28
  19. package/lib/adapters/evm/utils.js +29 -322
  20. package/lib/adapters/evm/utils.js.map +1 -1
  21. package/lib/adapters/solana/getters.js +35 -28
  22. package/lib/adapters/solana/getters.js.map +1 -1
  23. package/lib/adapters/solana/index.d.ts +27 -2
  24. package/lib/adapters/solana/utils.d.ts +15 -2
  25. package/lib/adapters/solana/utils.js +96 -21
  26. package/lib/adapters/solana/utils.js.map +1 -1
  27. package/lib/adapters/solana/vault.actions.js +11 -2
  28. package/lib/adapters/solana/vault.actions.js.map +1 -1
  29. package/lib/adapters/sui/constants.d.ts +13 -0
  30. package/lib/adapters/sui/constants.js +17 -0
  31. package/lib/adapters/sui/constants.js.map +1 -0
  32. package/lib/adapters/sui/getters.d.ts +3 -0
  33. package/lib/adapters/sui/getters.js +53 -0
  34. package/lib/adapters/sui/getters.js.map +1 -0
  35. package/lib/adapters/sui/index.d.ts +30 -0
  36. package/lib/adapters/sui/index.js +83 -0
  37. package/lib/adapters/sui/index.js.map +1 -1
  38. package/lib/adapters/sui/transformer.d.ts +4 -0
  39. package/lib/adapters/sui/transformer.js +87 -0
  40. package/lib/adapters/sui/transformer.js.map +1 -0
  41. package/lib/adapters/sui/types.d.ts +62 -0
  42. package/lib/{services/solana → adapters/sui}/types.js.map +1 -1
  43. package/lib/adapters/sui/utils.d.ts +4 -0
  44. package/lib/adapters/sui/utils.js +27 -0
  45. package/lib/adapters/sui/utils.js.map +1 -0
  46. package/lib/core/auth/verify.js +2 -2
  47. package/lib/core/auth/verify.js.map +1 -1
  48. package/lib/core/base.class.d.ts +1 -2
  49. package/lib/core/base.class.js +11 -6
  50. package/lib/core/base.class.js.map +1 -1
  51. package/lib/core/constants.adapters.d.ts +89 -0
  52. package/lib/core/constants.adapters.js +160 -0
  53. package/lib/core/constants.adapters.js.map +1 -0
  54. package/lib/{utils/constants/august.d.ts → core/constants.core.d.ts} +10 -1
  55. package/lib/{utils/constants/august.js → core/constants.core.js} +11 -2
  56. package/lib/core/constants.core.js.map +1 -0
  57. package/lib/core/constants.vaults.d.ts +19 -0
  58. package/lib/{utils/vaults.js → core/constants.vaults.js} +56 -75
  59. package/lib/core/constants.vaults.js.map +1 -0
  60. package/lib/{utils/constants/web3.d.ts → core/constants.web3.d.ts} +4 -6
  61. package/lib/{utils/constants/web3.js → core/constants.web3.js} +21 -27
  62. package/lib/core/constants.web3.js.map +1 -0
  63. package/lib/core/fetcher.d.ts +1 -1
  64. package/lib/core/fetcher.js +177 -64
  65. package/lib/core/fetcher.js.map +1 -1
  66. package/lib/core/helpers.adapters.d.ts +4 -0
  67. package/lib/core/helpers.adapters.js +28 -0
  68. package/lib/core/helpers.adapters.js.map +1 -0
  69. package/lib/core/helpers.core.d.ts +1 -1
  70. package/lib/core/helpers.core.js +6 -6
  71. package/lib/core/helpers.core.js.map +1 -1
  72. package/lib/core/helpers.signer.d.ts +5 -0
  73. package/lib/core/helpers.signer.js +54 -0
  74. package/lib/core/helpers.signer.js.map +1 -0
  75. package/lib/core/helpers.vaults.d.ts +15 -0
  76. package/lib/core/helpers.vaults.js +123 -0
  77. package/lib/core/helpers.vaults.js.map +1 -0
  78. package/lib/core/helpers.web3.d.ts +5 -2
  79. package/lib/core/helpers.web3.js +84 -26
  80. package/lib/core/helpers.web3.js.map +1 -1
  81. package/lib/core/index.d.ts +9 -5
  82. package/lib/core/index.js +9 -5
  83. package/lib/core/index.js.map +1 -1
  84. package/lib/core/logger/index.d.ts +9 -0
  85. package/lib/core/logger/index.js +29 -0
  86. package/lib/core/logger/index.js.map +1 -1
  87. package/lib/core/logger/slack.js +3 -3
  88. package/lib/index.d.ts +6 -6
  89. package/lib/index.js +14 -7
  90. package/lib/index.js.map +1 -1
  91. package/lib/main.d.ts +90 -14
  92. package/lib/main.js +56 -17
  93. package/lib/main.js.map +1 -1
  94. package/lib/modules/vaults/adapter.helpers.d.ts +46 -0
  95. package/lib/modules/vaults/adapter.helpers.js +149 -0
  96. package/lib/modules/vaults/adapter.helpers.js.map +1 -0
  97. package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
  98. package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +19 -176
  99. package/lib/modules/vaults/fetcher.js.map +1 -0
  100. package/lib/modules/vaults/getters.d.ts +32 -3
  101. package/lib/modules/vaults/getters.js +367 -71
  102. package/lib/modules/vaults/getters.js.map +1 -1
  103. package/lib/modules/vaults/index.d.ts +2 -83
  104. package/lib/modules/vaults/index.js +2 -480
  105. package/lib/modules/vaults/index.js.map +1 -1
  106. package/lib/modules/vaults/main.d.ts +29 -47
  107. package/lib/modules/vaults/main.js +142 -201
  108. package/lib/modules/vaults/main.js.map +1 -1
  109. package/lib/modules/vaults/read.actions.d.ts +3 -0
  110. package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
  111. package/lib/modules/vaults/read.actions.js.map +1 -0
  112. package/lib/modules/vaults/utils.d.ts +2 -106
  113. package/lib/modules/vaults/utils.js +139 -337
  114. package/lib/modules/vaults/utils.js.map +1 -1
  115. package/lib/modules/vaults/{vault.actions.d.ts → write.actions.d.ts} +11 -1
  116. package/lib/modules/vaults/write.actions.js +301 -0
  117. package/lib/modules/vaults/write.actions.js.map +1 -0
  118. package/lib/services/debank/utils.js +4 -4
  119. package/lib/services/subgraph/fetcher.js +3 -2
  120. package/lib/services/subgraph/fetcher.js.map +1 -1
  121. package/lib/services/subgraph/vaults.js +25 -27
  122. package/lib/services/subgraph/vaults.js.map +1 -1
  123. package/lib/types/pools.d.ts +1 -1
  124. package/lib/types/vaults.d.ts +21 -1
  125. package/lib/types/webserver.d.ts +15 -1
  126. package/package.json +24 -10
  127. package/lib/adapters/evm/core.actions.d.ts +0 -9
  128. package/lib/adapters/evm/core.actions.js +0 -51
  129. package/lib/adapters/evm/core.actions.js.map +0 -1
  130. package/lib/adapters/evm/read.actions.d.ts +0 -3
  131. package/lib/adapters/evm/read.actions.js.map +0 -1
  132. package/lib/adapters/evm/vaults.actions.d.ts +0 -10
  133. package/lib/adapters/evm/vaults.actions.js +0 -97
  134. package/lib/adapters/evm/vaults.actions.js.map +0 -1
  135. package/lib/adapters/solana/actions.d.ts +0 -20
  136. package/lib/adapters/solana/actions.js +0 -225
  137. package/lib/adapters/solana/actions.js.map +0 -1
  138. package/lib/adapters/solana/class.d.ts +0 -45
  139. package/lib/adapters/solana/class.js +0 -135
  140. package/lib/adapters/solana/class.js.map +0 -1
  141. package/lib/adapters/solana/vault-idl.d.ts +0 -338
  142. package/lib/adapters/solana/vault-idl.js +0 -1075
  143. package/lib/adapters/solana/vault-idl.js.map +0 -1
  144. package/lib/core/base-class.d.ts +0 -34
  145. package/lib/core/base-class.js +0 -55
  146. package/lib/core/base-class.js.map +0 -1
  147. package/lib/core/constants.d.ts +0 -86
  148. package/lib/core/constants.js +0 -146
  149. package/lib/core/constants.js.map +0 -1
  150. package/lib/core/core.helpers.d.ts +0 -23
  151. package/lib/core/core.helpers.js +0 -210
  152. package/lib/core/core.helpers.js.map +0 -1
  153. package/lib/core/helpers.d.ts +0 -23
  154. package/lib/core/helpers.js +0 -210
  155. package/lib/core/helpers.js.map +0 -1
  156. package/lib/core/read.actions.d.ts +0 -3
  157. package/lib/core/read.actions.js +0 -39
  158. package/lib/core/read.actions.js.map +0 -1
  159. package/lib/core/web3.helpers.d.ts +0 -28
  160. package/lib/core/web3.helpers.js +0 -336
  161. package/lib/core/web3.helpers.js.map +0 -1
  162. package/lib/core/write.actions.d.ts +0 -9
  163. package/lib/core/write.actions.js +0 -51
  164. package/lib/core/write.actions.js.map +0 -1
  165. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  166. package/lib/modules/vaults/admin-actions.js +0 -1
  167. package/lib/modules/vaults/admin-actions.js.map +0 -1
  168. package/lib/modules/vaults/constants.d.ts +0 -63
  169. package/lib/modules/vaults/constants.js +0 -190
  170. package/lib/modules/vaults/constants.js.map +0 -1
  171. package/lib/modules/vaults/user-actions.d.ts +0 -19
  172. package/lib/modules/vaults/user-actions.js +0 -172
  173. package/lib/modules/vaults/user-actions.js.map +0 -1
  174. package/lib/modules/vaults/user.actions.d.ts +0 -10
  175. package/lib/modules/vaults/user.actions.js +0 -95
  176. package/lib/modules/vaults/user.actions.js.map +0 -1
  177. package/lib/modules/vaults/vault.actions.js +0 -95
  178. package/lib/modules/vaults/vault.actions.js.map +0 -1
  179. package/lib/services/auth/index.d.ts +0 -1
  180. package/lib/services/auth/index.js +0 -18
  181. package/lib/services/auth/index.js.map +0 -1
  182. package/lib/services/auth/verify.d.ts +0 -2
  183. package/lib/services/auth/verify.js +0 -20
  184. package/lib/services/auth/verify.js.map +0 -1
  185. package/lib/services/index.d.ts +0 -4
  186. package/lib/services/index.js +0 -21
  187. package/lib/services/index.js.map +0 -1
  188. package/lib/services/logger/index.d.ts +0 -12
  189. package/lib/services/logger/index.js +0 -51
  190. package/lib/services/logger/index.js.map +0 -1
  191. package/lib/services/logger/slack.d.ts +0 -12
  192. package/lib/services/logger/slack.js +0 -48
  193. package/lib/services/logger/slack.js.map +0 -1
  194. package/lib/services/solana/actions.d.ts +0 -20
  195. package/lib/services/solana/actions.js +0 -225
  196. package/lib/services/solana/actions.js.map +0 -1
  197. package/lib/services/solana/class.d.ts +0 -45
  198. package/lib/services/solana/class.js +0 -135
  199. package/lib/services/solana/class.js.map +0 -1
  200. package/lib/services/solana/constants.d.ts +0 -25
  201. package/lib/services/solana/constants.js +0 -32
  202. package/lib/services/solana/constants.js.map +0 -1
  203. package/lib/services/solana/index.d.ts +0 -84
  204. package/lib/services/solana/index.js +0 -50
  205. package/lib/services/solana/index.js.map +0 -1
  206. package/lib/services/solana/types.d.ts +0 -58
  207. package/lib/services/solana/utils.d.ts +0 -96
  208. package/lib/services/solana/utils.js +0 -355
  209. package/lib/services/solana/utils.js.map +0 -1
  210. package/lib/services/solana/vault-idl.d.ts +0 -338
  211. package/lib/services/solana/vault-idl.js +0 -1075
  212. package/lib/services/solana/vault-idl.js.map +0 -1
  213. package/lib/utils/base-class.d.ts +0 -34
  214. package/lib/utils/base-class.js +0 -55
  215. package/lib/utils/base-class.js.map +0 -1
  216. package/lib/utils/constants/august.js.map +0 -1
  217. package/lib/utils/constants/fallbacks.d.ts +0 -3
  218. package/lib/utils/constants/fallbacks.js +0 -26
  219. package/lib/utils/constants/fallbacks.js.map +0 -1
  220. package/lib/utils/constants/index.d.ts +0 -3
  221. package/lib/utils/constants/index.js +0 -20
  222. package/lib/utils/constants/index.js.map +0 -1
  223. package/lib/utils/constants/web3.js.map +0 -1
  224. package/lib/utils/fetcher.d.ts +0 -25
  225. package/lib/utils/fetcher.js +0 -334
  226. package/lib/utils/fetcher.js.map +0 -1
  227. package/lib/utils/helpers/array.d.ts +0 -6
  228. package/lib/utils/helpers/array.js +0 -40
  229. package/lib/utils/helpers/array.js.map +0 -1
  230. package/lib/utils/helpers/datetime.d.ts +0 -5
  231. package/lib/utils/helpers/datetime.js +0 -32
  232. package/lib/utils/helpers/datetime.js.map +0 -1
  233. package/lib/utils/helpers/formatters.d.ts +0 -8
  234. package/lib/utils/helpers/formatters.js +0 -113
  235. package/lib/utils/helpers/formatters.js.map +0 -1
  236. package/lib/utils/helpers/index.d.ts +0 -6
  237. package/lib/utils/helpers/index.js +0 -23
  238. package/lib/utils/helpers/index.js.map +0 -1
  239. package/lib/utils/helpers/responses.d.ts +0 -32
  240. package/lib/utils/helpers/responses.js +0 -229
  241. package/lib/utils/helpers/responses.js.map +0 -1
  242. package/lib/utils/helpers/verify-keys.d.ts +0 -2
  243. package/lib/utils/helpers/verify-keys.js +0 -21
  244. package/lib/utils/helpers/verify-keys.js.map +0 -1
  245. package/lib/utils/helpers/web3.d.ts +0 -27
  246. package/lib/utils/helpers/web3.js +0 -339
  247. package/lib/utils/helpers/web3.js.map +0 -1
  248. package/lib/utils/index.d.ts +0 -5
  249. package/lib/utils/index.js +0 -22
  250. package/lib/utils/index.js.map +0 -1
  251. package/lib/utils/vaults.d.ts +0 -53
  252. package/lib/utils/vaults.js.map +0 -1
  253. package/lib/vaults/admin-actions.d.ts +0 -0
  254. package/lib/vaults/admin-actions.js +0 -1
  255. package/lib/vaults/admin-actions.js.map +0 -1
  256. package/lib/vaults/getters.d.ts +0 -38
  257. package/lib/vaults/getters.js +0 -760
  258. package/lib/vaults/getters.js.map +0 -1
  259. package/lib/vaults/index.d.ts +0 -4
  260. package/lib/vaults/index.js +0 -21
  261. package/lib/vaults/index.js.map +0 -1
  262. package/lib/vaults/main.d.ts +0 -118
  263. package/lib/vaults/main.js +0 -591
  264. package/lib/vaults/main.js.map +0 -1
  265. package/lib/vaults/rpc-config.d.ts +0 -4
  266. package/lib/vaults/rpc-config.js +0 -27
  267. package/lib/vaults/rpc-config.js.map +0 -1
  268. package/lib/vaults/subgraph.d.ts +0 -10
  269. package/lib/vaults/subgraph.js +0 -470
  270. package/lib/vaults/subgraph.js.map +0 -1
  271. package/lib/vaults/user-actions.d.ts +0 -19
  272. package/lib/vaults/user-actions.js +0 -172
  273. package/lib/vaults/user-actions.js.map +0 -1
  274. package/lib/vaults/utils.js.map +0 -1
  275. package/lib/verify.d.ts +0 -2
  276. package/lib/verify.js +0 -20
  277. package/lib/verify.js.map +0 -1
  278. /package/lib/{services/solana → adapters/sui}/types.js +0 -0
@@ -32,6 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.getVault = getVault;
37
40
  exports.getVaultLoans = getVaultLoans;
@@ -41,18 +44,22 @@ exports.getVaultRedemptionHistory = getVaultRedemptionHistory;
41
44
  exports.getVaultPositions = getVaultPositions;
42
45
  exports.getVaultApy = getVaultApy;
43
46
  exports.getRewardsStakingPositions = getRewardsStakingPositions;
47
+ exports.getVaultTvl = getVaultTvl;
48
+ exports.getVaultBorrowerHealthFactor = getVaultBorrowerHealthFactor;
49
+ exports.getHealthFactorOfBorrowersByVault = getHealthFactorOfBorrowersByVault;
44
50
  const abis_1 = require("../../abis");
45
51
  const core_1 = require("../../core");
46
52
  const ethers_1 = require("ethers");
47
- const utils_1 = require("./utils");
48
53
  const subgraph_1 = require("../../services/subgraph");
49
- const constants_1 = require("./constants");
50
54
  const debank_1 = require("../../services/debank");
51
55
  const solana_1 = require("../../adapters/solana");
52
56
  const EVM = __importStar(require("../../adapters/evm"));
57
+ const TokenizedVaultV2_1 = require("../../abis/TokenizedVaultV2");
58
+ const TokenizedVaultV2Receipt_1 = require("../../abis/TokenizedVaultV2Receipt");
59
+ const ethereum_block_by_date_1 = __importDefault(require("ethereum-block-by-date"));
53
60
  async function getVault({ vault, loans = false, allocations = false, options, }) {
54
61
  let returnedVault;
55
- const vaultVersion = (0, utils_1.getVaultVersion)(vault);
62
+ const vaultVersion = (0, core_1.getVaultVersion)(vault);
56
63
  try {
57
64
  const tokenizedVault = (await (0, core_1.fetchTokenizedVaults)(vault))?.[0];
58
65
  switch (vaultVersion) {
@@ -73,10 +80,10 @@ async function getVault({ vault, loans = false, allocations = false, options, })
73
80
  }
74
81
  }
75
82
  catch (err) {
76
- console.error(`#getVault::${vault}::${vaultVersion}:`, err);
77
- throw new Error(`#getVault::${vault}::${err?.message}`);
83
+ core_1.Logger.log.error('getVault', err, { vault, vaultVersion });
84
+ throw new Error(`#getVault::${vault}::${vaultVersion}: ${err?.message}`);
78
85
  }
79
- if (!(0, constants_1.isBadVault)(vault)) {
86
+ if (!(0, core_1.isBadVault)(vault)) {
80
87
  if (loans) {
81
88
  try {
82
89
  returnedVault = {
@@ -85,7 +92,9 @@ async function getVault({ vault, loans = false, allocations = false, options, })
85
92
  };
86
93
  }
87
94
  catch (e) {
88
- console.error(`getVault::${returnedVault.receipt.symbol}:`, e?.message);
95
+ core_1.Logger.log.error('getVault:loans', e, {
96
+ symbol: returnedVault.receipt.symbol,
97
+ });
89
98
  }
90
99
  }
91
100
  if (allocations) {
@@ -97,7 +106,9 @@ async function getVault({ vault, loans = false, allocations = false, options, })
97
106
  };
98
107
  }
99
108
  catch (e) {
100
- console.error(`getVault::${returnedVault.receipt.symbol}:`, e?.message);
109
+ core_1.Logger.log.error('getVault:allocations', e, {
110
+ symbol: returnedVault.receipt.symbol,
111
+ });
101
112
  throw new Error('Failure fetching debank res');
102
113
  }
103
114
  }
@@ -106,7 +117,7 @@ async function getVault({ vault, loans = false, allocations = false, options, })
106
117
  }
107
118
  async function getVaultLoans(vault, options) {
108
119
  const vaultAddress = typeof vault === 'string' ? vault : vault.address;
109
- const vaultVersion = (0, utils_1.getVaultVersion)(vaultAddress);
120
+ const vaultVersion = (0, core_1.getVaultVersion)(vaultAddress);
110
121
  if (vaultVersion !== 'evm-0')
111
122
  return [];
112
123
  try {
@@ -140,7 +151,7 @@ async function getVaultLoans(vault, options) {
140
151
  const loanFeeRate = await (0, core_1.getLoanOracleFeeRate)(provider, 'LOAN.REPAY.INTERESTS', l.address, chainId);
141
152
  const loanApr = Number(l.apr || 0) / 100;
142
153
  const loanAprAfterFees = loanApr * (1 - loanFeeRate / 100);
143
- const isIdleCapital = constants_1.IDLE_CAPITAL_BORROWER_ADDRESS.includes(borrower);
154
+ const isIdleCapital = core_1.IDLE_CAPITAL_BORROWER_ADDRESS.includes(borrower);
144
155
  const newLoanObj = {
145
156
  vault: vaultAddress,
146
157
  address: l.address,
@@ -167,7 +178,7 @@ async function getVaultLoans(vault, options) {
167
178
  return newLoans;
168
179
  }
169
180
  catch (e) {
170
- console.error('#getVaultLoans:', e);
181
+ core_1.Logger.log.error('getVaultLoans', e, { vault });
171
182
  throw new Error(`#getVaultLoans::${vault}:${e?.message}`);
172
183
  }
173
184
  }
@@ -194,7 +205,7 @@ async function getVaultAllocations(vault, options) {
194
205
  let uniqueBorrowers;
195
206
  const tokenizedVault = (await (0, core_1.fetchTokenizedVaults)(vault, options?.headers))?.[0];
196
207
  try {
197
- const vaultVersion = (0, utils_1.getVaultVersion)(vault);
208
+ const vaultVersion = (0, core_1.getVaultVersion)(vault);
198
209
  if (vaultVersion === 'evm-0') {
199
210
  const loans = await getVaultLoans(vault, options);
200
211
  uniqueBorrowers = [...new Set(loans.map((l) => l.borrower))];
@@ -204,17 +215,17 @@ async function getVaultAllocations(vault, options) {
204
215
  }
205
216
  }
206
217
  catch (e) {
207
- console.error('#getVaultAllocations::borrowers:', e);
218
+ core_1.Logger.log.error('getVaultAllocations:borrowers', e);
208
219
  }
209
- if (vault.toLowerCase() === constants_1.VAULT_AgoraAUSD.toLowerCase()) {
210
- const debankRes = await (0, debank_1.fetchDebankResponse)(constants_1.SUBACCOUNT_CALEB);
220
+ if (vault.toLowerCase() === core_1.VAULT_AgoraAUSD.toLowerCase()) {
221
+ const debankRes = await (0, debank_1.fetchDebankResponse)(core_1.SUBACCOUNT_CALEB);
211
222
  if (debankRes === false) {
212
223
  debankErr = true;
213
224
  }
214
- (0, debank_1.parseVaultLevelDebank)(debankRes, protocolExposure, tokenExposure, constants_1.SUBACCOUNT_CALEB, exposurePerCategory, netValue);
225
+ (0, debank_1.parseVaultLevelDebank)(debankRes, protocolExposure, tokenExposure, core_1.SUBACCOUNT_CALEB, exposurePerCategory, netValue);
215
226
  unfilteredTokens = debankRes?.subaccount?.tokens;
216
227
  const debankPerLoan = (0, debank_1.parseLoanLevelDebank)(debankRes);
217
- defiPerBorrower[constants_1.SUBACCOUNT_CALEB] = debankPerLoan;
228
+ defiPerBorrower[core_1.SUBACCOUNT_CALEB] = debankPerLoan;
218
229
  }
219
230
  else {
220
231
  for (const borrower of uniqueBorrowers) {
@@ -229,7 +240,7 @@ async function getVaultAllocations(vault, options) {
229
240
  defiPerBorrower[borrower] = debankPerLoan;
230
241
  }
231
242
  catch (e) {
232
- console.error('#getVaultAllocations::debank:', e);
243
+ core_1.Logger.log.error('getVaultAllocations:debank', e, { borrower });
233
244
  }
234
245
  try {
235
246
  const cefiResponse = await (0, core_1.fetchAugustWithKey)(options.augustKey, core_1.WEBSERVER_ENDPOINTS.subaccount.cefi(borrower), { headers: options?.headers });
@@ -288,64 +299,110 @@ async function getVaultAvailableRedemptions({ vault, wallet, options, }) {
288
299
  if (!tokenizedVault) {
289
300
  return { availableRedemptions: [], pendingRedemptions: [] };
290
301
  }
291
- const poolContract = (0, core_1.createContract)({
302
+ const version = (0, core_1.getVaultVersion)(vault);
303
+ let abi;
304
+ let decimals;
305
+ switch (version) {
306
+ case 'evm-2': {
307
+ abi = TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2;
308
+ decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault));
309
+ break;
310
+ }
311
+ default: {
312
+ abi = abis_1.ABI_LENDING_POOL_V2;
313
+ decimals = await (0, core_1.getDecimals)(provider, vault);
314
+ break;
315
+ }
316
+ }
317
+ const vaultContract = (0, core_1.createContract)({
292
318
  address: vault,
293
- abi: abis_1.ABI_LENDING_POOL_V2,
319
+ abi: abi,
294
320
  provider,
295
321
  });
296
322
  const { withdrawalRequesteds, withdrawalProcesseds } = await (0, subgraph_1.getSubgraphAllWithdrawals)(vault, provider);
297
- const decimals = await (0, core_1.getDecimals)(provider, vault);
298
323
  const availableRedemptions = [];
299
324
  const pendingRedemptions = [];
300
325
  for (const ev of withdrawalRequesteds) {
301
326
  if (!ev || typeof ev !== 'object') {
302
- console.warn('#getVaultAvailableRedemptions: Skipping invalid event:', ev);
327
+ core_1.Logger.log.warn('getVaultAvailableRedemptions', `Skipping invalid event: ${ev}`);
303
328
  continue;
304
329
  }
305
330
  if (!ev.year || !ev.month || !ev.day || !ev.receiverAddr) {
306
- console.warn('#getVaultAvailableRedemptions: Skipping event with missing required properties:', ev);
331
+ core_1.Logger.log.warn('getVaultAvailableRedemptions', `Skipping event with missing required properties: ${ev}`);
307
332
  continue;
308
333
  }
309
334
  const fullDate = new Date(Number(ev.year), Number(ev.month) - 1, Number(ev.day));
310
335
  const foundRedemptionAgainstClaim = withdrawalProcesseds.find((h) => new Date(h.processedOn).toDateString() === fullDate.toDateString() &&
311
336
  h.receiverAddr === ev.receiverAddr);
312
- if (wallet) {
337
+ if (wallet && (0, ethers_1.isAddress)(wallet)) {
313
338
  if (ev?.receiverAddr?.toLowerCase() === wallet.toLowerCase()) {
314
339
  const alreadyRedeemed = availableRedemptions.find((red) => BigInt(red.day.raw) === BigInt(ev.day) &&
315
340
  BigInt(red.month.raw) === BigInt(ev.month) &&
316
341
  BigInt(red.year.raw) === BigInt(ev.year));
317
342
  if (!(foundRedemptionAgainstClaim && alreadyRedeemed)) {
318
343
  try {
319
- const trueClaimableAmount = await poolContract?.getClaimableAmountByReceiver?.(BigInt(ev.year), BigInt(ev.month), BigInt(ev.day), (0, ethers_1.getAddress)(wallet));
320
- if (trueClaimableAmount > BigInt(0)) {
321
- availableRedemptions.push({
322
- id: ev.transactionHash_ || ev.id,
323
- hash: ev.transactionHash_ || ev.id,
324
- timestamp: Number(ev.timestamp_),
325
- receiver: ev.receiverAddr,
326
- day: (0, core_1.toNormalizedBn)(ev.day, 0),
327
- month: (0, core_1.toNormalizedBn)(ev.month, 0),
328
- year: (0, core_1.toNormalizedBn)(ev.year, 0),
329
- amount: (0, core_1.toNormalizedBn)(trueClaimableAmount, decimals),
330
- date: fullDate,
331
- vault,
332
- });
344
+ switch (version) {
345
+ case 'evm-2': {
346
+ availableRedemptions.push({
347
+ id: ev.transactionHash_ || ev.id,
348
+ hash: ev.transactionHash_ || ev.id,
349
+ timestamp: Number(ev.timestamp_),
350
+ receiver: ev.receiverAddr,
351
+ day: (0, core_1.toNormalizedBn)(ev.day, 0),
352
+ month: (0, core_1.toNormalizedBn)(ev.month, 0),
353
+ year: (0, core_1.toNormalizedBn)(ev.year, 0),
354
+ amount: (0, core_1.toNormalizedBn)(ev.shares, decimals),
355
+ date: fullDate,
356
+ vault,
357
+ });
358
+ pendingRedemptions.push({
359
+ id: ev.transactionHash_ || ev.id,
360
+ hash: ev.transactionHash_ || ev.id,
361
+ timestamp: Number(ev.timestamp_),
362
+ receiver: ev.receiverAddr,
363
+ day: (0, core_1.toNormalizedBn)(ev.day, 0),
364
+ month: (0, core_1.toNormalizedBn)(ev.month, 0),
365
+ year: (0, core_1.toNormalizedBn)(ev.year, 0),
366
+ amount: (0, core_1.toNormalizedBn)(ev.shares || BigInt(0), decimals),
367
+ date: fullDate,
368
+ vault,
369
+ });
370
+ break;
371
+ }
372
+ default: {
373
+ const trueClaimableAmount = await vaultContract?.getClaimableAmountByReceiver?.(BigInt(ev.year), BigInt(ev.month), BigInt(ev.day), (0, ethers_1.getAddress)(wallet));
374
+ if (trueClaimableAmount > BigInt(0)) {
375
+ availableRedemptions.push({
376
+ id: ev.transactionHash_ || ev.id,
377
+ hash: ev.transactionHash_ || ev.id,
378
+ timestamp: Number(ev.timestamp_),
379
+ receiver: ev.receiverAddr,
380
+ day: (0, core_1.toNormalizedBn)(ev.day, 0),
381
+ month: (0, core_1.toNormalizedBn)(ev.month, 0),
382
+ year: (0, core_1.toNormalizedBn)(ev.year, 0),
383
+ amount: (0, core_1.toNormalizedBn)(trueClaimableAmount, decimals),
384
+ date: fullDate,
385
+ vault,
386
+ });
387
+ }
388
+ pendingRedemptions.push({
389
+ id: ev.transactionHash_ || ev.id,
390
+ hash: ev.transactionHash_ || ev.id,
391
+ timestamp: Number(ev.timestamp_),
392
+ receiver: ev.receiverAddr,
393
+ day: (0, core_1.toNormalizedBn)(ev.day, 0),
394
+ month: (0, core_1.toNormalizedBn)(ev.month, 0),
395
+ year: (0, core_1.toNormalizedBn)(ev.year, 0),
396
+ amount: (0, core_1.toNormalizedBn)(trueClaimableAmount || BigInt(0), decimals),
397
+ date: fullDate,
398
+ vault,
399
+ });
400
+ break;
401
+ }
333
402
  }
334
- pendingRedemptions.push({
335
- id: ev.transactionHash_ || ev.id,
336
- hash: ev.transactionHash_ || ev.id,
337
- timestamp: Number(ev.timestamp_),
338
- receiver: ev.receiverAddr,
339
- day: (0, core_1.toNormalizedBn)(ev.day, 0),
340
- month: (0, core_1.toNormalizedBn)(ev.month, 0),
341
- year: (0, core_1.toNormalizedBn)(ev.year, 0),
342
- amount: (0, core_1.toNormalizedBn)(trueClaimableAmount || BigInt(0), decimals),
343
- date: fullDate,
344
- vault,
345
- });
346
403
  }
347
404
  catch (contractError) {
348
- console.error('#getVaultAvailableRedemptions: Contract call failed:', contractError);
405
+ core_1.Logger.log.error('getVaultAvailableRedemptions', `Contract call failed: ${contractError}`);
349
406
  pendingRedemptions.push({
350
407
  id: ev.transactionHash_ || ev.id,
351
408
  hash: ev.transactionHash_ || ev.id,
@@ -382,7 +439,7 @@ async function getVaultAvailableRedemptions({ vault, wallet, options, }) {
382
439
  return { availableRedemptions, pendingRedemptions };
383
440
  }
384
441
  catch (e) {
385
- console.error('#getVaultAvailableRedemptions:', e);
442
+ core_1.Logger.log.error('getVaultAvailableRedemptions', e, { vault, wallet });
386
443
  return { availableRedemptions: [], pendingRedemptions: [] };
387
444
  }
388
445
  }
@@ -442,12 +499,11 @@ async function getVaultRedemptionHistory({ vault, wallet, options, }) {
442
499
  });
443
500
  }
444
501
  });
445
- if (options.env === 'DEV')
446
- console.log('#getVaultRedemptionHistory:', redemptions.slice(0, 1));
502
+ core_1.Logger.log.info('getVaultRedemptionHistory', redemptions.slice(0, 1));
447
503
  return redemptions;
448
504
  }
449
505
  catch (e) {
450
- console.error('#getVaultRedemptionHistory:', e);
506
+ core_1.Logger.log.error('getVaultRedemptionHistory', e, { vault, wallet });
451
507
  return [];
452
508
  }
453
509
  }
@@ -485,14 +541,45 @@ async function getVaultPositions({ vault, wallet, solanaWallet, options, }) {
485
541
  };
486
542
  }
487
543
  const provider = (0, core_1.createProvider)(options.rpcUrl);
488
- const decimals = await (0, core_1.getDecimals)(provider, vault);
489
- const poolContract = (0, core_1.createContract)({
544
+ let decimals;
545
+ let abi;
546
+ const version = (0, core_1.getVaultVersion)(vault);
547
+ switch (version) {
548
+ case 'evm-2': {
549
+ decimals = await (0, core_1.getDecimals)(provider, await (0, core_1.getReceiptTokenAddress)(provider, vault));
550
+ abi = TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2;
551
+ break;
552
+ }
553
+ default: {
554
+ decimals = await (0, core_1.getDecimals)(provider, vault);
555
+ abi = abis_1.ABI_LENDING_POOL_V2;
556
+ break;
557
+ }
558
+ }
559
+ const vaultContract = (0, core_1.createContract)({
490
560
  provider,
491
- abi: abis_1.ABI_LENDING_POOL_V2,
561
+ abi: abi,
492
562
  address: v.address,
493
563
  });
494
- const bal = await poolContract.balanceOf(wallet);
495
- const balance = (0, core_1.toNormalizedBn)(bal || 0, decimals);
564
+ let bal = BigInt(0);
565
+ if (wallet && (0, ethers_1.isAddress)(wallet)) {
566
+ switch (version) {
567
+ case 'evm-2': {
568
+ const receiptContract = (0, core_1.createContract)({
569
+ provider,
570
+ abi: TokenizedVaultV2Receipt_1.ABI_TOKENIZED_VAULT_V2_RECEIPT,
571
+ address: await (0, core_1.getReceiptTokenAddress)(provider, vault),
572
+ });
573
+ bal = await receiptContract.balanceOf(wallet);
574
+ break;
575
+ }
576
+ default: {
577
+ bal = await vaultContract.balanceOf(wallet);
578
+ break;
579
+ }
580
+ }
581
+ }
582
+ const balance = (0, core_1.toNormalizedBn)(bal, decimals);
496
583
  const { availableRedemptions, pendingRedemptions } = await getVaultAvailableRedemptions({
497
584
  vault: v.address,
498
585
  wallet,
@@ -509,7 +596,7 @@ async function getVaultPositions({ vault, wallet, solanaWallet, options, }) {
509
596
  };
510
597
  }
511
598
  catch (vaultError) {
512
- console.error(`#getVaultPositions: Error processing vault ${v.address}:`, vaultError);
599
+ core_1.Logger.log.error(`getVaultPositions`, `Error processing vault ${v.address}: ${vaultError}`);
513
600
  return {
514
601
  vault,
515
602
  status: 'PENDING',
@@ -523,17 +610,51 @@ async function getVaultPositions({ vault, wallet, solanaWallet, options, }) {
523
610
  return promises.flat();
524
611
  }
525
612
  catch (e) {
526
- console.error('#getVaultPositions:', e);
613
+ core_1.Logger.log.error('getVaultPositions', e, { vault, wallet, solanaWallet });
527
614
  throw new Error(`#getVaultPositions::${vault}:${e?.message}`);
528
615
  }
529
616
  }
530
- async function getVaultApy({ vault, options, }) {
617
+ async function getVaultApy({ vault, options, historical, }) {
531
618
  try {
532
- const tokenizedVault = (await (0, core_1.fetchTokenizedVaults)(vault, options?.headers))?.[0];
533
- return tokenizedVault?.reported_apy?.apy || 0;
619
+ if (!vault)
620
+ throw new Error('Vault input parameter is undefined.');
621
+ if (!historical) {
622
+ const tokenizedVault = (await (0, core_1.fetchTokenizedVaults)(vault, options?.headers))?.[0];
623
+ return [
624
+ {
625
+ value: tokenizedVault?.reported_apy?.apy || 0,
626
+ timestamp: new Date().toISOString(),
627
+ },
628
+ ];
629
+ }
630
+ else {
631
+ function paramBuilder(params) {
632
+ const urlParams = new URLSearchParams();
633
+ if (!params)
634
+ return '';
635
+ if (params.daysAgo)
636
+ urlParams.append('days_ago', params.daysAgo.toString());
637
+ return urlParams.toString();
638
+ }
639
+ const historicalApy = await (0, core_1.fetchAugustPublic)(`${core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.historicalApy(vault)}${paramBuilder(historical)}`, {
640
+ headers: !!options?.headers
641
+ ? options?.headers
642
+ : undefined,
643
+ });
644
+ if (!historicalApy.ok)
645
+ throw new Error('Failed to fetch historical apy.');
646
+ const historicalApyData = (await historicalApy.json());
647
+ return historicalApyData.data.values.map((val, index) => {
648
+ const respectiveDate = historicalApyData.data.labels[index];
649
+ return {
650
+ timestamp: new Date(respectiveDate).toISOString(),
651
+ value: val,
652
+ };
653
+ });
654
+ }
534
655
  }
535
656
  catch (e) {
536
- console.error('#getVaultApy:', e);
657
+ core_1.Logger.log.error('getVaultApy', e, { vault });
537
658
  throw new Error(`#getVaultApy::${vault}:${e?.message}`);
538
659
  }
539
660
  }
@@ -548,14 +669,14 @@ async function getRewardsStakingPositions({ rpcUrl, wallet, coinGeckoKey, }) {
548
669
  const provider = (0, core_1.createProvider)(rpcUrl);
549
670
  const chainId = await (0, core_1.getChainId)(provider);
550
671
  if (chainId !== REWARDS_CHAIN) {
551
- console.warn('#getStakingPositions: no rewards distributor on chain_id', chainId);
672
+ core_1.Logger.log.warn('getStakingPositions:unsupported_chain', chainId);
552
673
  return [];
553
674
  }
554
675
  if (wallet && !(0, ethers_1.isAddress)(wallet)) {
555
- console.warn('#getStakingPositions: wallet passed is not a valid address', wallet);
676
+ core_1.Logger.log.warn('getStakingPositions:invalid_wallet', wallet);
556
677
  return [];
557
678
  }
558
- const rewardDistributorAddresses = (0, utils_1.REWARD_DISTRIBUTOR_ADDRESS)(chainId);
679
+ const rewardDistributorAddresses = (0, core_1.REWARD_DISTRIBUTOR_ADDRESS)(chainId);
559
680
  const positions = await Promise.all(rewardDistributorAddresses.map(async (contract, i) => {
560
681
  const rewardContract = (0, core_1.createContract)({
561
682
  address: contract,
@@ -571,7 +692,7 @@ async function getRewardsStakingPositions({ rpcUrl, wallet, coinGeckoKey, }) {
571
692
  provider: provider,
572
693
  abi: abis_1.ABI_ERC20,
573
694
  });
574
- const [decimals, symbol, name, totalSupply] = await Promise.all(stakingTokenCalls.map((staking) => stakingTokenContract[staking]()));
695
+ const [decimals, symbol, name] = await Promise.all(stakingTokenCalls.map((staking) => stakingTokenContract[staking]()));
575
696
  let balance;
576
697
  let earned;
577
698
  if (wallet) {
@@ -630,7 +751,182 @@ async function getRewardsStakingPositions({ rpcUrl, wallet, coinGeckoKey, }) {
630
751
  return positions;
631
752
  }
632
753
  catch (e) {
633
- console.error('#getStakingPositions:', e);
754
+ core_1.Logger.log.error('getStakingPositions', e, { wallet });
755
+ return [];
634
756
  }
635
757
  }
758
+ async function getVaultTvl({ vault, options, historical, }) {
759
+ try {
760
+ if (!vault)
761
+ throw new Error('Vault input parameter is undefined.');
762
+ const _vaultExists = (await (0, core_1.fetchTokenizedVaults)(vault))?.[0];
763
+ if (!_vaultExists) {
764
+ throw new Error(`Vault ${vault} not found in backend`);
765
+ }
766
+ if (!historical) {
767
+ const version = (0, core_1.getVaultVersion)(vault);
768
+ const provider = (0, core_1.createProvider)(options.rpcUrl);
769
+ switch (version) {
770
+ case 'evm-2': {
771
+ const receiptTokenAddress = await (0, core_1.getReceiptTokenAddress)(provider, vault);
772
+ const receiptTokenDecimals = await (0, core_1.getDecimals)(provider, receiptTokenAddress);
773
+ const receiptTokenContract = (0, core_1.createContract)({
774
+ address: receiptTokenAddress,
775
+ abi: TokenizedVaultV2Receipt_1.ABI_TOKENIZED_VAULT_V2_RECEIPT,
776
+ provider,
777
+ });
778
+ const totalSupply = await receiptTokenContract.getTotalSupply();
779
+ return [
780
+ {
781
+ value: (0, core_1.toNormalizedBn)(totalSupply, receiptTokenDecimals),
782
+ timestamp: new Date().toISOString(),
783
+ },
784
+ ];
785
+ }
786
+ case 'sol-0': {
787
+ return [
788
+ {
789
+ value: (0, core_1.toNormalizedBn)(0),
790
+ timestamp: new Date().toISOString(),
791
+ },
792
+ ];
793
+ }
794
+ default: {
795
+ const vaultContract = (0, core_1.createContract)({
796
+ address: vault,
797
+ abi: TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2,
798
+ provider,
799
+ });
800
+ const decimals = await (0, core_1.getDecimals)(provider, vault);
801
+ const totalSupply = await vaultContract.totalSupply();
802
+ return [
803
+ {
804
+ value: (0, core_1.toNormalizedBn)(totalSupply, decimals),
805
+ timestamp: new Date().toISOString(),
806
+ },
807
+ ];
808
+ }
809
+ }
810
+ }
811
+ else {
812
+ if (typeof historical !== 'undefined' && !historical.order)
813
+ historical.order = 'desc';
814
+ if (typeof historical !== 'undefined' && !historical.interval)
815
+ historical.interval = 'days';
816
+ const provider = (0, core_1.createProvider)(options.rpcUrl);
817
+ const version = (0, core_1.getVaultVersion)(vault);
818
+ const vaultContract = (0, core_1.createContract)({
819
+ address: vault,
820
+ abi: version === 'evm-2' ? TokenizedVaultV2_1.ABI_TOKENIZED_VAULT_V2 : abis_1.ABI_LENDING_POOL_V2,
821
+ provider,
822
+ });
823
+ let minAbi = [];
824
+ let functionName = '';
825
+ let vaultDecimals = 0;
826
+ switch (version) {
827
+ case 'evm-2': {
828
+ minAbi = ['function getTotalAssets() view returns (uint256)'];
829
+ functionName = 'getTotalAssets';
830
+ const receiptTokenAddress = await (0, core_1.getReceiptTokenAddress)(provider, vault);
831
+ vaultDecimals = await (0, core_1.getDecimals)(provider, receiptTokenAddress);
832
+ break;
833
+ }
834
+ default: {
835
+ minAbi = ['function totalAssets() view returns (uint256)'];
836
+ functionName = 'totalAssets';
837
+ vaultDecimals = await (0, core_1.getDecimals)(provider, vault);
838
+ break;
839
+ }
840
+ }
841
+ const finalizedBlock = await provider.getBlock('finalized');
842
+ const finalizedTimestamp = finalizedBlock
843
+ ? finalizedBlock.timestamp * 1000
844
+ : Date.now() * 60 * 1000;
845
+ const daysAgo = historical.daysAgo * 24 * 60 * 60 * 1000;
846
+ const dater = new ethereum_block_by_date_1.default(provider);
847
+ const startDate = historical.daysAgo
848
+ ? new Date(finalizedTimestamp - daysAgo)
849
+ : new Date(finalizedTimestamp);
850
+ const blocks = await dater.getEvery(historical.interval, startDate.toUTCString(), new Date(finalizedTimestamp).toUTCString());
851
+ const orderedBlocks = historical.order === 'desc' ? (0, core_1.orderObjArrByDate)(blocks) : blocks;
852
+ const totalAssetsHistorical = await (0, core_1.promiseSettle)(orderedBlocks?.map(async ({ block, date }) => {
853
+ const totalAssetsAtBlock = await provider.call({
854
+ to: vaultContract,
855
+ data: new ethers_1.Interface(minAbi).encodeFunctionData(functionName, []),
856
+ blockTag: block,
857
+ });
858
+ if (totalAssetsAtBlock === '0x')
859
+ return {
860
+ timestamp: (0, core_1.dateToUnix)(new Date(date)),
861
+ value: (0, core_1.toNormalizedBn)(0, 0),
862
+ };
863
+ const readableTotalAssetsAtBlock = new ethers_1.Interface(minAbi).decodeFunctionResult(functionName, totalAssetsAtBlock);
864
+ return {
865
+ timestamp: (0, core_1.dateToUnix)(new Date(date)),
866
+ value: (0, core_1.toNormalizedBn)(readableTotalAssetsAtBlock?.[0], vaultDecimals),
867
+ };
868
+ }));
869
+ core_1.Logger.log.info('getVaultTvl:historical', totalAssetsHistorical.length);
870
+ return totalAssetsHistorical;
871
+ }
872
+ }
873
+ catch (e) {
874
+ core_1.Logger.log.error('getVaultTvl', e, { vault });
875
+ throw new Error(`Failed to fetch TVL for ${vault}: ${e instanceof Error ? e.message : 'Unknown error'}`);
876
+ }
877
+ }
878
+ async function getVaultBorrowerHealthFactor({ vault, options, }) {
879
+ const provider = (0, core_1.createProvider)(options.rpcUrl);
880
+ const loans = await getVaultLoans(vault, options);
881
+ const activeLoans = (await Promise.all(loans.map(async (l) => {
882
+ const loanContract = (0, core_1.createContract)({
883
+ provider,
884
+ address: l.address,
885
+ abi: abis_1.ABI_LOAN,
886
+ });
887
+ const loanState = await loanContract.loanState();
888
+ if ((0, core_1.loanStateToReadable)(loanState) !== 'ACTIVE')
889
+ return;
890
+ return l.address;
891
+ }))).filter((l) => l !== undefined);
892
+ const formattedLoansArray = await Promise.all(activeLoans.map(async (l) => {
893
+ const loanContract = (0, core_1.createContract)({
894
+ provider,
895
+ address: l,
896
+ abi: abis_1.ABI_LOAN,
897
+ });
898
+ return {
899
+ borrower: await loanContract.borrower(),
900
+ loan: l,
901
+ };
902
+ }));
903
+ const uniqueBorrowers = [
904
+ ...new Set(formattedLoansArray.map((l) => l.borrower)),
905
+ ];
906
+ let borrowerResponses = {};
907
+ for (const b of uniqueBorrowers) {
908
+ const response = await (0, core_1.fetchAugustWithKey)(options.augustKey, core_1.WEBSERVER_ENDPOINTS.subaccount.health_factor(b));
909
+ if (response.status === 200) {
910
+ borrowerResponses[b] = await response.json();
911
+ }
912
+ }
913
+ formattedLoansArray?.map((loan) => {
914
+ loan.health_factor = borrowerResponses[loan.borrower];
915
+ });
916
+ return formattedLoansArray;
917
+ }
918
+ async function getHealthFactorOfBorrowersByVault({ options, }) {
919
+ const vaults = await (0, core_1.fetchTokenizedVaults)();
920
+ const healthFactors = await Promise.all(vaults.map(async (v) => {
921
+ return getVaultBorrowerHealthFactor({
922
+ vault: v.address,
923
+ options,
924
+ });
925
+ }));
926
+ const healthFactorsByPool = {};
927
+ vaults.map((pool, index) => {
928
+ healthFactorsByPool[pool.address] = healthFactors[index];
929
+ });
930
+ return healthFactorsByPool;
931
+ }
636
932
  //# sourceMappingURL=getters.js.map