@augustdigital/sdk 4.1.0-alpha → 4.1.0-beta

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 (251) hide show
  1. package/README.md +169 -11
  2. package/lib/__tests__/adapter.e2e.test.d.ts +1 -0
  3. package/lib/__tests__/adapter.e2e.test.js +94 -0
  4. package/lib/__tests__/adapter.e2e.test.js.map +1 -0
  5. package/lib/abis/Multicall3.js.map +1 -1
  6. package/lib/abis/PoolAdapter.d.ts +36 -76
  7. package/lib/abis/PoolAdapter.js +18 -379
  8. package/lib/abis/PoolAdapter.js.map +1 -1
  9. package/lib/abis/WrapperAdapter.d.ts +71 -60
  10. package/lib/abis/WrapperAdapter.js +41 -114
  11. package/lib/abis/WrapperAdapter.js.map +1 -1
  12. package/lib/abis/index.d.ts +3 -0
  13. package/lib/abis/index.js +3 -0
  14. package/lib/abis/index.js.map +1 -1
  15. package/lib/adapters/evm/getters.d.ts +1 -1
  16. package/lib/adapters/evm/getters.js +26 -37
  17. package/lib/adapters/evm/getters.js.map +1 -1
  18. package/lib/adapters/evm/index.d.ts +3 -3
  19. package/lib/adapters/evm/index.js +9 -10
  20. package/lib/adapters/evm/index.js.map +1 -1
  21. package/lib/adapters/evm/utils.d.ts +2 -28
  22. package/lib/adapters/evm/utils.js +29 -322
  23. package/lib/adapters/evm/utils.js.map +1 -1
  24. package/lib/adapters/solana/getters.js +33 -26
  25. package/lib/adapters/solana/getters.js.map +1 -1
  26. package/lib/adapters/solana/index.d.ts +25 -1
  27. package/lib/adapters/solana/utils.d.ts +13 -1
  28. package/lib/adapters/solana/utils.js +65 -16
  29. package/lib/adapters/solana/utils.js.map +1 -1
  30. package/lib/core/auth/verify.js +2 -2
  31. package/lib/core/auth/verify.js.map +1 -1
  32. package/lib/core/base.class.d.ts +1 -2
  33. package/lib/core/base.class.js +11 -6
  34. package/lib/core/base.class.js.map +1 -1
  35. package/lib/core/constants.adapters.d.ts +89 -0
  36. package/lib/core/constants.adapters.js +160 -0
  37. package/lib/core/constants.adapters.js.map +1 -0
  38. package/lib/{utils/constants/august.d.ts → core/constants.core.d.ts} +3 -1
  39. package/lib/{utils/constants/august.js → core/constants.core.js} +4 -2
  40. package/lib/core/constants.core.js.map +1 -0
  41. package/lib/core/constants.d.ts +2 -0
  42. package/lib/core/constants.js +3 -1
  43. package/lib/core/constants.js.map +1 -1
  44. package/lib/core/constants.vaults.d.ts +19 -0
  45. package/lib/{utils/vaults.js → core/constants.vaults.js} +49 -75
  46. package/lib/core/constants.vaults.js.map +1 -0
  47. package/lib/{utils/constants/web3.d.ts → core/constants.web3.d.ts} +4 -6
  48. package/lib/{utils/constants/web3.js → core/constants.web3.js} +15 -27
  49. package/lib/core/constants.web3.js.map +1 -0
  50. package/lib/core/fetcher.d.ts +1 -1
  51. package/lib/core/fetcher.js +177 -64
  52. package/lib/core/fetcher.js.map +1 -1
  53. package/lib/core/helpers.adapters.d.ts +4 -0
  54. package/lib/core/helpers.adapters.js +28 -0
  55. package/lib/core/helpers.adapters.js.map +1 -0
  56. package/lib/core/helpers.core.d.ts +1 -1
  57. package/lib/core/helpers.core.js +6 -6
  58. package/lib/core/helpers.core.js.map +1 -1
  59. package/lib/core/helpers.vaults.d.ts +15 -0
  60. package/lib/core/helpers.vaults.js +120 -0
  61. package/lib/core/helpers.vaults.js.map +1 -0
  62. package/lib/core/helpers.web3.d.ts +5 -2
  63. package/lib/core/helpers.web3.js +75 -25
  64. package/lib/core/helpers.web3.js.map +1 -1
  65. package/lib/core/index.d.ts +8 -5
  66. package/lib/core/index.js +8 -5
  67. package/lib/core/index.js.map +1 -1
  68. package/lib/core/logger/index.d.ts +9 -0
  69. package/lib/core/logger/index.js +29 -0
  70. package/lib/core/logger/index.js.map +1 -1
  71. package/lib/core/logger/slack.js +3 -3
  72. package/lib/core/vault.utils.d.ts +4 -0
  73. package/lib/core/vault.utils.js +35 -0
  74. package/lib/core/vault.utils.js.map +1 -0
  75. package/lib/core/web3.helpers.d.ts +1 -0
  76. package/lib/core/web3.helpers.js +32 -3
  77. package/lib/core/web3.helpers.js.map +1 -1
  78. package/lib/index.d.ts +6 -6
  79. package/lib/index.js +14 -7
  80. package/lib/index.js.map +1 -1
  81. package/lib/main.d.ts +88 -14
  82. package/lib/main.js +54 -17
  83. package/lib/main.js.map +1 -1
  84. package/lib/modules/vaults/adapter.helpers.d.ts +46 -0
  85. package/lib/modules/vaults/adapter.helpers.js +149 -0
  86. package/lib/modules/vaults/adapter.helpers.js.map +1 -0
  87. package/lib/modules/vaults/constants.d.ts +7 -7
  88. package/lib/modules/vaults/constants.js +11 -15
  89. package/lib/modules/vaults/constants.js.map +1 -1
  90. package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
  91. package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +19 -176
  92. package/lib/modules/vaults/fetcher.js.map +1 -0
  93. package/lib/modules/vaults/getters.d.ts +32 -3
  94. package/lib/modules/vaults/getters.js +367 -71
  95. package/lib/modules/vaults/getters.js.map +1 -1
  96. package/lib/modules/vaults/index.d.ts +2 -83
  97. package/lib/modules/vaults/index.js +2 -480
  98. package/lib/modules/vaults/index.js.map +1 -1
  99. package/lib/modules/vaults/main.d.ts +27 -47
  100. package/lib/modules/vaults/main.js +127 -198
  101. package/lib/modules/vaults/main.js.map +1 -1
  102. package/lib/modules/vaults/read.actions.d.ts +3 -0
  103. package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
  104. package/lib/modules/vaults/read.actions.js.map +1 -0
  105. package/lib/modules/vaults/utils.d.ts +2 -106
  106. package/lib/modules/vaults/utils.js +132 -337
  107. package/lib/modules/vaults/utils.js.map +1 -1
  108. package/lib/modules/vaults/{user.actions.d.ts → write.actions.d.ts} +12 -2
  109. package/lib/modules/vaults/write.actions.js +291 -0
  110. package/lib/modules/vaults/write.actions.js.map +1 -0
  111. package/lib/services/debank/utils.js +4 -4
  112. package/lib/services/subgraph/fetcher.js +3 -2
  113. package/lib/services/subgraph/fetcher.js.map +1 -1
  114. package/lib/services/subgraph/vaults.js +25 -27
  115. package/lib/services/subgraph/vaults.js.map +1 -1
  116. package/lib/types/pools.d.ts +1 -1
  117. package/lib/types/vaults.d.ts +19 -0
  118. package/lib/types/webserver.d.ts +15 -1
  119. package/package.json +16 -10
  120. package/lib/adapters/evm/core.actions.d.ts +0 -9
  121. package/lib/adapters/evm/core.actions.js +0 -51
  122. package/lib/adapters/evm/core.actions.js.map +0 -1
  123. package/lib/adapters/evm/read.actions.d.ts +0 -3
  124. package/lib/adapters/evm/read.actions.js.map +0 -1
  125. package/lib/adapters/evm/vaults.actions.d.ts +0 -10
  126. package/lib/adapters/evm/vaults.actions.js +0 -97
  127. package/lib/adapters/evm/vaults.actions.js.map +0 -1
  128. package/lib/adapters/solana/actions.d.ts +0 -20
  129. package/lib/adapters/solana/actions.js +0 -225
  130. package/lib/adapters/solana/actions.js.map +0 -1
  131. package/lib/adapters/solana/class.d.ts +0 -45
  132. package/lib/adapters/solana/class.js +0 -135
  133. package/lib/adapters/solana/class.js.map +0 -1
  134. package/lib/adapters/solana/vault-idl.d.ts +0 -338
  135. package/lib/adapters/solana/vault-idl.js +0 -1075
  136. package/lib/adapters/solana/vault-idl.js.map +0 -1
  137. package/lib/core/base-class.d.ts +0 -34
  138. package/lib/core/base-class.js +0 -55
  139. package/lib/core/base-class.js.map +0 -1
  140. package/lib/core/helpers.d.ts +0 -23
  141. package/lib/core/helpers.js +0 -210
  142. package/lib/core/helpers.js.map +0 -1
  143. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  144. package/lib/modules/vaults/admin-actions.js +0 -1
  145. package/lib/modules/vaults/admin-actions.js.map +0 -1
  146. package/lib/modules/vaults/user-actions.d.ts +0 -19
  147. package/lib/modules/vaults/user-actions.js +0 -172
  148. package/lib/modules/vaults/user-actions.js.map +0 -1
  149. package/lib/modules/vaults/user.actions.js +0 -95
  150. package/lib/modules/vaults/user.actions.js.map +0 -1
  151. package/lib/services/auth/index.d.ts +0 -1
  152. package/lib/services/auth/index.js +0 -18
  153. package/lib/services/auth/index.js.map +0 -1
  154. package/lib/services/auth/verify.d.ts +0 -2
  155. package/lib/services/auth/verify.js +0 -20
  156. package/lib/services/auth/verify.js.map +0 -1
  157. package/lib/services/index.d.ts +0 -4
  158. package/lib/services/index.js +0 -21
  159. package/lib/services/index.js.map +0 -1
  160. package/lib/services/logger/index.d.ts +0 -12
  161. package/lib/services/logger/index.js +0 -51
  162. package/lib/services/logger/index.js.map +0 -1
  163. package/lib/services/logger/slack.d.ts +0 -12
  164. package/lib/services/logger/slack.js +0 -48
  165. package/lib/services/logger/slack.js.map +0 -1
  166. package/lib/services/solana/actions.d.ts +0 -20
  167. package/lib/services/solana/actions.js +0 -225
  168. package/lib/services/solana/actions.js.map +0 -1
  169. package/lib/services/solana/class.d.ts +0 -45
  170. package/lib/services/solana/class.js +0 -135
  171. package/lib/services/solana/class.js.map +0 -1
  172. package/lib/services/solana/constants.d.ts +0 -25
  173. package/lib/services/solana/constants.js +0 -32
  174. package/lib/services/solana/constants.js.map +0 -1
  175. package/lib/services/solana/index.d.ts +0 -84
  176. package/lib/services/solana/index.js +0 -50
  177. package/lib/services/solana/index.js.map +0 -1
  178. package/lib/services/solana/types.d.ts +0 -58
  179. package/lib/services/solana/types.js +0 -3
  180. package/lib/services/solana/types.js.map +0 -1
  181. package/lib/services/solana/utils.d.ts +0 -96
  182. package/lib/services/solana/utils.js +0 -355
  183. package/lib/services/solana/utils.js.map +0 -1
  184. package/lib/services/solana/vault-idl.d.ts +0 -338
  185. package/lib/services/solana/vault-idl.js +0 -1075
  186. package/lib/services/solana/vault-idl.js.map +0 -1
  187. package/lib/utils/base-class.d.ts +0 -34
  188. package/lib/utils/base-class.js +0 -55
  189. package/lib/utils/base-class.js.map +0 -1
  190. package/lib/utils/constants/august.js.map +0 -1
  191. package/lib/utils/constants/fallbacks.d.ts +0 -3
  192. package/lib/utils/constants/fallbacks.js +0 -26
  193. package/lib/utils/constants/fallbacks.js.map +0 -1
  194. package/lib/utils/constants/index.d.ts +0 -3
  195. package/lib/utils/constants/index.js +0 -20
  196. package/lib/utils/constants/index.js.map +0 -1
  197. package/lib/utils/constants/web3.js.map +0 -1
  198. package/lib/utils/fetcher.d.ts +0 -25
  199. package/lib/utils/fetcher.js +0 -334
  200. package/lib/utils/fetcher.js.map +0 -1
  201. package/lib/utils/helpers/array.d.ts +0 -6
  202. package/lib/utils/helpers/array.js +0 -40
  203. package/lib/utils/helpers/array.js.map +0 -1
  204. package/lib/utils/helpers/datetime.d.ts +0 -5
  205. package/lib/utils/helpers/datetime.js +0 -32
  206. package/lib/utils/helpers/datetime.js.map +0 -1
  207. package/lib/utils/helpers/formatters.d.ts +0 -8
  208. package/lib/utils/helpers/formatters.js +0 -113
  209. package/lib/utils/helpers/formatters.js.map +0 -1
  210. package/lib/utils/helpers/index.d.ts +0 -6
  211. package/lib/utils/helpers/index.js +0 -23
  212. package/lib/utils/helpers/index.js.map +0 -1
  213. package/lib/utils/helpers/responses.d.ts +0 -32
  214. package/lib/utils/helpers/responses.js +0 -229
  215. package/lib/utils/helpers/responses.js.map +0 -1
  216. package/lib/utils/helpers/verify-keys.d.ts +0 -2
  217. package/lib/utils/helpers/verify-keys.js +0 -21
  218. package/lib/utils/helpers/verify-keys.js.map +0 -1
  219. package/lib/utils/helpers/web3.d.ts +0 -27
  220. package/lib/utils/helpers/web3.js +0 -339
  221. package/lib/utils/helpers/web3.js.map +0 -1
  222. package/lib/utils/index.d.ts +0 -5
  223. package/lib/utils/index.js +0 -22
  224. package/lib/utils/index.js.map +0 -1
  225. package/lib/utils/vaults.d.ts +0 -53
  226. package/lib/utils/vaults.js.map +0 -1
  227. package/lib/vaults/admin-actions.d.ts +0 -0
  228. package/lib/vaults/admin-actions.js +0 -1
  229. package/lib/vaults/admin-actions.js.map +0 -1
  230. package/lib/vaults/getters.d.ts +0 -38
  231. package/lib/vaults/getters.js +0 -760
  232. package/lib/vaults/getters.js.map +0 -1
  233. package/lib/vaults/index.d.ts +0 -4
  234. package/lib/vaults/index.js +0 -21
  235. package/lib/vaults/index.js.map +0 -1
  236. package/lib/vaults/main.d.ts +0 -118
  237. package/lib/vaults/main.js +0 -591
  238. package/lib/vaults/main.js.map +0 -1
  239. package/lib/vaults/rpc-config.d.ts +0 -4
  240. package/lib/vaults/rpc-config.js +0 -27
  241. package/lib/vaults/rpc-config.js.map +0 -1
  242. package/lib/vaults/subgraph.d.ts +0 -10
  243. package/lib/vaults/subgraph.js +0 -470
  244. package/lib/vaults/subgraph.js.map +0 -1
  245. package/lib/vaults/user-actions.d.ts +0 -19
  246. package/lib/vaults/user-actions.js +0 -172
  247. package/lib/vaults/user-actions.js.map +0 -1
  248. package/lib/vaults/utils.js.map +0 -1
  249. package/lib/verify.d.ts +0 -2
  250. package/lib/verify.js +0 -20
  251. package/lib/verify.js.map +0 -1
@@ -0,0 +1,19 @@
1
+ import { IAddress, IPoolFunctions } from '../types';
2
+ export declare const VAULT_AgoraAUSD: IAddress;
3
+ export declare const SUBACCOUNT_CALEB: IAddress;
4
+ export declare const MULTI_ASSET_VAULTS: `0x${string}`[];
5
+ export declare const WRAPPER_ADAPTOR: {
6
+ 43114: IAddress;
7
+ 1: IAddress;
8
+ };
9
+ export declare const OLD_LENDING_POOLS: `0x${string}`[];
10
+ export declare const IDLE_CAPITAL_BORROWER_ADDRESS: `0x${string}`[];
11
+ export declare const VAULT_FUNCTIONS_V1: IPoolFunctions[];
12
+ export declare const VAULT_FUNCTIONS_V2: IPoolFunctions[];
13
+ export declare const VAULT_FUNCTIONS_V2_RECEIPT: IPoolFunctions[];
14
+ export declare const VAULT_FUNCTIONS_V2_WHITELISTED_ASSETS: IPoolFunctions[];
15
+ export declare const SUBGRAPH_VAULT_URLS: Record<VaultSymbols, string>;
16
+ type VaultSymbols = 'testWETHTSA' | 'tacUSR' | 'upINJUSDT' | 'tac-tETH' | 'upAUSD' | 'TACcbBTC' | 'xUpUSDC' | 'uptBTC' | 'gtETH' | 'agETH' | 'upUSDC' | 'hgETH' | 'upsSYLVA' | 'hbBTC' | 'hbHYPE' | 'upAZT' | 'sUSDT' | 'upEDGE' | 'coreUSDC' | 'upcUSDO' | 'shiftETH' | 'upsUSDe' | 'upLBTC' | 'upAVAX' | 'TACrsEth' | 'mUSD' | 'earnAUSD' | 'AlpineUSDCFlagship' | 'AlpineCoinshiftUSDC' | 'upBTC' | 'UpStrBTC' | 'maxiUSR' | 'upGAMMAusdc' | 'xHYPE' | 'wildUSD' | 'AlpineBTC' | 'preNUSD';
17
+ export declare const VAULT_SYMBOLS: Record<IAddress, VaultSymbols>;
18
+ export declare const VAULT_SYMBOLS_REVERSE: Record<VaultSymbols, IAddress>;
19
+ export {};
@@ -1,51 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBadVault = exports.VAULT_SYMBOLS_REVERSE = exports.VAULT_SYMBOLS = exports.SUBGRAPH_VAULT_URLS = exports.IDLE_CAPITAL_BORROWER_ADDRESS = exports.OLD_LENDING_POOLS = exports.SUBGRAPH_POOL_URLS = void 0;
4
- exports.getVaultSymbol = getVaultSymbol;
5
- const helpers_1 = require("./helpers");
3
+ exports.VAULT_SYMBOLS_REVERSE = exports.VAULT_SYMBOLS = exports.SUBGRAPH_VAULT_URLS = exports.VAULT_FUNCTIONS_V2_WHITELISTED_ASSETS = exports.VAULT_FUNCTIONS_V2_RECEIPT = exports.VAULT_FUNCTIONS_V2 = exports.VAULT_FUNCTIONS_V1 = exports.IDLE_CAPITAL_BORROWER_ADDRESS = exports.OLD_LENDING_POOLS = exports.WRAPPER_ADAPTOR = exports.MULTI_ASSET_VAULTS = exports.SUBACCOUNT_CALEB = exports.VAULT_AgoraAUSD = void 0;
6
4
  const ethers_1 = require("ethers");
7
- const SUBGRAPH_POOL_URLS = (apiKey, chainId, pool) => {
8
- if (chainId === 999) {
9
- if (!pool) {
10
- throw new Error(`Pool address is required for chainId ${chainId}`);
11
- }
12
- switch (pool) {
13
- case exports.VAULT_SYMBOLS_REVERSE.hbHYPE:
14
- return {
15
- 999: 'https://api.goldsky.com/api/public/project_cm9g0xy3o4j6v01vd34r3hvv9/subgraphs/august-hyperevm-hyperbeat/1.0.0/gn',
16
- };
17
- case exports.VAULT_SYMBOLS_REVERSE.hbBTC:
18
- return {
19
- 999: 'https://api.goldsky.com/api/public/project_cm9g0xy3o4j6v01vd34r3hvv9/subgraphs/august-hyperevm-hbBTC/1.0.0/gn',
20
- };
21
- default:
22
- throw new Error(`Unsupported pool for chainId ${chainId}: ${pool}`);
23
- }
24
- }
25
- const urls = {
26
- 1: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/BtbHLe7XtX2x9Ude9PKv2uagNHj6JYhjjFcimxvk7NPD`,
27
- 8453: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/E96gN4ZAmtCwLfsYccy3TqCTBbizGPWssFFeZfJ5QSQP`,
28
- 43114: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/Ho15f2DBGndTMAYx9bPxJzasQRsAd5oLdci4oZvWs2u6`,
29
- 42161: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/BrqNoj6FWm678yFRKdVWBncwt3zUnpbA3u4n9A9puUSg`,
30
- 56: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/4BDCXZvSBuNGX3ck6C6nTGos7Dg5SxjfHMjrKnQz4YE2`,
31
- };
32
- if (chainId && !(chainId in urls)) {
33
- throw new Error(`Unsupported chainId: ${chainId}. Supported chains: ${Object.keys(urls).join(', ')}`);
34
- }
35
- return urls;
5
+ exports.VAULT_AgoraAUSD = (0, ethers_1.getAddress)('0x828BC5895b78b2fb591018Ca5bDC2064742D6D0f');
6
+ exports.SUBACCOUNT_CALEB = (0, ethers_1.getAddress)('0xFff71B0b66f076C60Fa2f176a34a6EA709ccF21B');
7
+ exports.MULTI_ASSET_VAULTS = [
8
+ (0, ethers_1.getAddress)('0x18EE038C114a07f4B08b420fb1E4149a4F357249'),
9
+ ];
10
+ exports.WRAPPER_ADAPTOR = {
11
+ 43114: (0, ethers_1.getAddress)('0xb2C57614B93c41A7Ec3B91980C0Bb7453904c6e8'),
12
+ 1: (0, ethers_1.getAddress)('0x044155804b2ef8fc53C69E3661ceA9b905EDE7Bc'),
36
13
  };
37
- exports.SUBGRAPH_POOL_URLS = SUBGRAPH_POOL_URLS;
38
14
  exports.OLD_LENDING_POOLS = [
39
- '0xe1B4d34E8754600962Cd944B535180Bd758E6c2e',
40
- '0xEBac5e50003d4B17Be422ff9775043cD61002f7f',
41
- '0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42',
15
+ (0, ethers_1.getAddress)('0xe1B4d34E8754600962Cd944B535180Bd758E6c2e'),
16
+ (0, ethers_1.getAddress)('0xEBac5e50003d4B17Be422ff9775043cD61002f7f'),
17
+ (0, ethers_1.getAddress)('0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42'),
42
18
  ];
43
19
  exports.IDLE_CAPITAL_BORROWER_ADDRESS = [
44
- '0x2151C90C93F52bE82186f162c86DaEABc8911188',
45
- '0xb74c137E5f976dbdCC638Ec9fd3e05d6D9124E55',
20
+ (0, ethers_1.getAddress)('0x2151C90C93F52bE82186f162c86DaEABc8911188'),
21
+ (0, ethers_1.getAddress)('0xb74c137E5f976dbdCC638Ec9fd3e05d6D9124E55'),
22
+ ];
23
+ exports.VAULT_FUNCTIONS_V1 = [
24
+ 'decimals',
25
+ 'asset',
26
+ 'totalSupply',
27
+ 'totalAssets',
28
+ 'maxSupply',
29
+ 'withdrawalFee',
30
+ 'lagDuration',
31
+ 'withdrawalsPaused',
32
+ ];
33
+ exports.VAULT_FUNCTIONS_V2 = [
34
+ 'assetsWhitelistAddress',
35
+ 'getTotalAssets',
36
+ 'asset',
37
+ 'withdrawalFee',
38
+ 'maxDepositAmount',
39
+ 'lagDuration',
40
+ 'withdrawalsPaused',
41
+ 'lpTokenAddress',
42
+ ];
43
+ exports.VAULT_FUNCTIONS_V2_RECEIPT = [
44
+ 'decimals',
45
+ 'totalSupply',
46
+ ];
47
+ exports.VAULT_FUNCTIONS_V2_WHITELISTED_ASSETS = [
48
+ 'getWhitelistedAssets',
46
49
  ];
47
50
  const GOLDSKY_BASE_URL = 'https://api.goldsky.com/api/private/project_cm9g0xy3o4j6v01vd34r3hvv9/subgraphs';
48
51
  exports.SUBGRAPH_VAULT_URLS = {
52
+ testWETHTSA: ``,
49
53
  tacUSR: `${GOLDSKY_BASE_URL}/august-eth-tacUSR/1.0.0/gn`,
50
54
  upINJUSDT: `${GOLDSKY_BASE_URL}/august-eth-upINJUSDT/1.0.0/gn`,
51
55
  'tac-tETH': `${GOLDSKY_BASE_URL}/august-eth-tactETH/1.0.0/gn`,
@@ -72,6 +76,7 @@ exports.SUBGRAPH_VAULT_URLS = {
72
76
  upAVAX: `${GOLDSKY_BASE_URL}/august-avax-upAVAX/1.0.0/gn`,
73
77
  TACrsEth: `${GOLDSKY_BASE_URL}/august-eth-TACrsEth/1.0.0/gn`,
74
78
  mUSD: `${GOLDSKY_BASE_URL}/august-mezo-mUSD/1.0.0/gn`,
79
+ wildUSD: `${GOLDSKY_BASE_URL}/august-eth-wildUSD/1.0.0/gn`,
75
80
  earnAUSD: `${GOLDSKY_BASE_URL}/august-eth-earnAUSD/1.0.0/gn`,
76
81
  AlpineCoinshiftUSDC: `${GOLDSKY_BASE_URL}/august-eth-AlpineCoinshiftUSDC/1.0.0/gn`,
77
82
  AlpineUSDCFlagship: `${GOLDSKY_BASE_URL}/august-eth-AlpineUSDCFlagship/1.0.0/gn`,
@@ -79,6 +84,8 @@ exports.SUBGRAPH_VAULT_URLS = {
79
84
  maxiUSR: `${GOLDSKY_BASE_URL}/august-eth-maxiUSR/1.0.0/gn`,
80
85
  upGAMMAusdc: `${GOLDSKY_BASE_URL}/august-eth-upGAMMAusdc/1.0.0/gn`,
81
86
  xHYPE: `${GOLDSKY_BASE_URL}/august-hyperevm-xHYPE/1.0.0/gn`,
87
+ AlpineBTC: `${GOLDSKY_BASE_URL}/august-eth-AlpineBTC/1.0.0/gn`,
88
+ preNUSD: `${GOLDSKY_BASE_URL}/august-eth-preNUSD/1.0.0/gn`,
82
89
  };
83
90
  exports.VAULT_SYMBOLS = {
84
91
  '0x686c83Aa81ba206354fDcbc2cd282B4531365E29': 'tacUSR',
@@ -115,42 +122,9 @@ exports.VAULT_SYMBOLS = {
115
122
  '0xdA89af5bF2eb0B225d787aBfA9095610f2E79e7D': 'maxiUSR',
116
123
  '0x998D7b14c123c1982404562b68edDB057b0477cB': 'upGAMMAusdc',
117
124
  '0x3a214b33A648f17fdcb78eD895dD0579dc3cc330': 'xHYPE',
125
+ '0x18EE038C114a07f4B08b420fb1E4149a4F357249': 'wildUSD',
126
+ '0x6625bA54DC861e9f5c678983dBa5BA96d19a9224': 'AlpineBTC',
127
+ '0x866C6c6627303Be103814150fC0e886BE5D9ea83': 'preNUSD',
118
128
  };
119
129
  exports.VAULT_SYMBOLS_REVERSE = Object.fromEntries(Object.entries(exports.VAULT_SYMBOLS).map(([key, value]) => [value, key]));
120
- const isBadVault = (address) => {
121
- if (!address)
122
- return false;
123
- switch (address) {
124
- case '0x706162790b601A8514c18718d0c63C9D1268e89C':
125
- return true;
126
- case '0xd684AF965b1c17D628ee0d77cae94259c41260F4':
127
- return true;
128
- case '0xB78dAf3fD674B81ebeaaa88d711506fa069E1C5E':
129
- return true;
130
- case '0x4e2D90f0307A93b54ACA31dc606F93FE6b9132d2':
131
- return true;
132
- case '0x18a5a3D575F34e5eBa92ac99B0976dBe26f9F869':
133
- return true;
134
- case '0xD0b717ef23817b1a127139830Cf0FcD449ef74F0':
135
- return true;
136
- case '0xeb402fc96C7ed2f889d837C9976D6d821c1B5f01':
137
- return true;
138
- case '0xEBac5e50003d4B17Be422ff9775043cD61002f7f':
139
- return true;
140
- case '0x419386E3Ef42368e602720CC458e00c0B28c47A7':
141
- return true;
142
- default:
143
- return false;
144
- }
145
- };
146
- exports.isBadVault = isBadVault;
147
- async function getVaultSymbol(vault, provider) {
148
- const address = (0, ethers_1.getAddress)(vault);
149
- if (address in exports.VAULT_SYMBOLS)
150
- return exports.VAULT_SYMBOLS[address];
151
- else {
152
- const symbol = await (0, helpers_1.getSymbol)(provider, vault);
153
- return symbol;
154
- }
155
- }
156
- //# sourceMappingURL=vaults.js.map
130
+ //# sourceMappingURL=constants.vaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.vaults.js","sourceRoot":"","sources":["../../src.ts/core/constants.vaults.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IChainId, IChainObj } from '../../types';
1
+ import { IChainId, IChainObj } from '../types';
2
2
  export declare const SPECIAL_CHAINS: {
3
3
  solana: {
4
4
  name: string;
@@ -23,10 +23,8 @@ export declare const ORACLE_CONTRACTS: {
23
23
  8453: string;
24
24
  10: string;
25
25
  };
26
- export declare const REWARD_DISTRIBUTOR_ADDRESS: (chainId: number) => string[];
27
- export declare const AVAX_PRICE_FEED_ADDRESS: (chainId: number) => "0xFF3EEb22B5E3dE6e705b44749C2559d704923FD7" | "0x";
28
- export declare const WRAPPER_ADAPTOR: {
29
- [key: number]: `0x${string}`;
30
- };
31
26
  export declare const NETWORKS: Record<IChainId, IChainObj>;
32
27
  export declare const AVAILABLE_CHAINS: IChainId[];
28
+ export declare const FALLBACK_DECIMALS = 18;
29
+ export declare const FALLBACK_CHAINID = 42161;
30
+ export declare const FALLBACK_RPC_URLS: Record<number, string[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AVAILABLE_CHAINS = exports.NETWORKS = exports.WRAPPER_ADAPTOR = exports.AVAX_PRICE_FEED_ADDRESS = exports.REWARD_DISTRIBUTOR_ADDRESS = exports.ORACLE_CONTRACTS = exports.MIN_ABIS = exports.NATIVE_ADDRESS = exports.SPECIAL_CHAINS = void 0;
3
+ exports.FALLBACK_RPC_URLS = exports.FALLBACK_CHAINID = exports.FALLBACK_DECIMALS = exports.AVAILABLE_CHAINS = exports.NETWORKS = exports.ORACLE_CONTRACTS = exports.MIN_ABIS = exports.NATIVE_ADDRESS = exports.SPECIAL_CHAINS = void 0;
4
4
  exports.SPECIAL_CHAINS = {
5
5
  solana: {
6
6
  name: 'Solana',
@@ -25,31 +25,6 @@ exports.ORACLE_CONTRACTS = {
25
25
  8453: '0x07858dF2D8D9aB1DCAAA8b743eb80C6250DFA947',
26
26
  10: '0xe0049eBCCB23Cb81c3d4C9Fa175b32876b70C2AB',
27
27
  };
28
- const REWARD_DISTRIBUTOR_ADDRESS = (chainId) => {
29
- switch (chainId) {
30
- case 43114:
31
- return [
32
- '0xAeAc5f82B140c0f7309f7E9Ec43019062A5e5BE2',
33
- '0xd3e653A9f6F3d96B26Dd4487a53D151140B697C4',
34
- ];
35
- default:
36
- return ['0x0000000000000000000000000000000000000000'];
37
- }
38
- };
39
- exports.REWARD_DISTRIBUTOR_ADDRESS = REWARD_DISTRIBUTOR_ADDRESS;
40
- const AVAX_PRICE_FEED_ADDRESS = (chainId) => {
41
- switch (chainId) {
42
- case 1:
43
- return '0xFF3EEb22B5E3dE6e705b44749C2559d704923FD7';
44
- default:
45
- return '0x';
46
- }
47
- };
48
- exports.AVAX_PRICE_FEED_ADDRESS = AVAX_PRICE_FEED_ADDRESS;
49
- exports.WRAPPER_ADAPTOR = {
50
- 43114: '0xb2C57614B93c41A7Ec3B91980C0Bb7453904c6e8',
51
- 1: '0x044155804b2ef8fc53C69E3661ceA9b905EDE7Bc',
52
- };
53
28
  exports.NETWORKS = {
54
29
  1: {
55
30
  name: 'Ethereum',
@@ -98,4 +73,17 @@ exports.NETWORKS = {
98
73
  },
99
74
  };
100
75
  exports.AVAILABLE_CHAINS = Object.keys(exports.NETWORKS).map((c) => Number(c));
101
- //# sourceMappingURL=web3.js.map
76
+ exports.FALLBACK_DECIMALS = 18;
77
+ exports.FALLBACK_CHAINID = 42161;
78
+ exports.FALLBACK_RPC_URLS = {
79
+ 1: ['https://ethereum-rpc.publicnode.com'],
80
+ 999: ['https://rpc.hyperliquid.xyz/evm'],
81
+ 239: ['https://rpc.ankr.com/tac'],
82
+ 80094: ['https://berachain-rpc.publicnode.com'],
83
+ 59144: ['https://linea-rpc.publicnode.com'],
84
+ 43111: ['https://rpc.hemi.network/rpc'],
85
+ 146: ['https://rpc.soniclabs.com'],
86
+ 534352: ['https://scroll.api.onfinality.io/public'],
87
+ 10: ['https://optimism-mainnet.public.blastapi.io'],
88
+ };
89
+ //# sourceMappingURL=constants.web3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.web3.js","sourceRoot":"","sources":["../../src.ts/core/constants.web3.ts"],"names":[],"mappings":";;;AAGa,QAAA,cAAc,GAAG;IAC5B,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,oBAAoB;KAC/B;CACF,CAAC;AAGW,QAAA,cAAc,GAAG,4CAA4C,CAAC;AAE9D,QAAA,QAAQ,GAAG;IACtB,IAAI,EAAE,uCAAuC;IAC7C,MAAM,EAAE,yCAAyC;IACjD,QAAQ,EAAE,0CAA0C;IACpD,WAAW,EAAE,+CAA+C;IAC5D,OAAO,EACL,kFAAkF;IACpF,SAAS,EACP,oFAAoF;IACtF,oBAAoB,EAClB,wDAAwD;CAC3D,CAAC;AAGW,QAAA,gBAAgB,GAAG;IAC9B,CAAC,EAAE,4CAA4C;IAC/C,KAAK,EAAE,4CAA4C;IACnD,KAAK,EAAE,4CAA4C;IACnD,IAAI,EAAE,4CAA4C;IAClD,EAAE,EAAE,4CAA4C;CACjD,CAAC;AAKW,QAAA,QAAQ,GAAgC;IACnD,CAAC,EAAE;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,sBAAsB;KACjC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,qBAAqB;KAChC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,sBAAsB;KACjC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,sBAAsB;KACjC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,yBAAyB;KACpC;IACD,EAAE,EAAE;QACF,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,qBAAqB;KAChC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,yBAAyB;KACpC;IACD,GAAG,EAAE;QACH,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,qBAAqB;KAChC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,2BAA2B;KACtC;CACF,CAAC;AAEW,QAAA,gBAAgB,GAAe,MAAM,CAAC,IAAI,CAAC,gBAAQ,CAAC,CAAC,GAAG,CACnE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAa,CAC7B,CAAC;AAKW,QAAA,iBAAiB,GAAG,EAAE,CAAC;AAEvB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AAEzB,QAAA,iBAAiB,GAA6B;IAEzD,CAAC,EAAE,CAAC,qCAAqC,CAAC;IAE1C,GAAG,EAAE,CAAC,iCAAiC,CAAC;IACxC,GAAG,EAAE,CAAC,0BAA0B,CAAC;IACjC,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,KAAK,EAAE,CAAC,kCAAkC,CAAC;IAC3C,KAAK,EAAE,CAAC,8BAA8B,CAAC;IACvC,GAAG,EAAE,CAAC,2BAA2B,CAAC;IAClC,MAAM,EAAE,CAAC,yCAAyC,CAAC;IACnD,EAAE,EAAE,CAAC,6CAA6C,CAAC;CAIpD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { IAddress, IContractRunner, ITokenizedVault, IWSMonitorHeaders, IWSVaultLoan } from '../types';
2
- import { WEBSERVER_URL } from './constants';
3
2
  import { LRUCache } from 'lru-cache';
3
+ import { WEBSERVER_URL } from './constants.core';
4
4
  type IFetchAugustMethods = 'get' | 'post' | 'put';
5
5
  type IFetchAugustOptions = {
6
6
  method?: IFetchAugustMethods;
@@ -10,20 +10,32 @@ exports.fetchTokenizedVaults = fetchTokenizedVaults;
10
10
  exports.fetchTokenPrice = fetchTokenPrice;
11
11
  exports.fetchTokenizedVaultLoans = fetchTokenizedVaultLoans;
12
12
  exports.promiseSettle = promiseSettle;
13
- const constants_1 = require("./constants");
14
- const core_helpers_1 = require("./core.helpers");
13
+ const helpers_core_1 = require("./helpers.core");
15
14
  const ethers_1 = require("ethers");
16
15
  const abis_1 = require("../abis");
17
16
  const lru_cache_1 = require("lru-cache");
18
17
  const solana_1 = require("../adapters/solana");
19
18
  const fetcher_1 = require("../services/coingecko/fetcher");
20
19
  const logger_1 = require("./logger");
21
- const web3_helpers_1 = require("./web3.helpers");
20
+ const helpers_web3_1 = require("./helpers.web3");
21
+ const constants_core_1 = require("./constants.core");
22
+ const helpers_vaults_1 = require("./helpers.vaults");
22
23
  exports.CACHE = new lru_cache_1.LRUCache({
23
24
  max: 1000,
24
25
  ttl: 1000 * 60 * 60 * 24,
25
26
  allowStale: true,
26
27
  });
28
+ const PRICE_CACHE = new lru_cache_1.LRUCache({
29
+ max: 500,
30
+ ttl: 1000 * 30,
31
+ allowStale: false,
32
+ });
33
+ const PRICE_ERROR_CACHE = new lru_cache_1.LRUCache({
34
+ max: 100,
35
+ ttl: 1000 * 5,
36
+ allowStale: false,
37
+ });
38
+ const PRICE_REQUESTS = new Map();
27
39
  async function fetchAugustWithKey(apiKey, relativeUrl, options) {
28
40
  if (!apiKey && !options.override) {
29
41
  return { status: 500, statusText: 'x-api-key is undefined' };
@@ -33,50 +45,80 @@ async function fetchAugustWithKey(apiKey, relativeUrl, options) {
33
45
  'content-type': 'application/json',
34
46
  accept: 'application/json',
35
47
  };
36
- const res = await fetch(`${constants_1.WEBSERVER_URL[(options?.server || 'production')]}${relativeUrl}`, {
37
- headers: {
38
- ...defaultHeaders,
39
- ...options?.headers,
40
- },
41
- method: options?.method ?? 'GET',
42
- body: JSON.stringify(options?.data),
43
- });
44
- const correlationId = res.headers['x-correlation-id'];
45
- const logger = logger_1.Logger.getLogger();
46
- if (!res.ok || res.status !== 200) {
47
- if (correlationId && logger) {
48
- logger.setTag('correlation_id', correlationId);
48
+ const controller = new AbortController();
49
+ const timeoutId = setTimeout(() => controller.abort(), constants_core_1.REQUEST_TIMEOUT_MS);
50
+ try {
51
+ const res = await fetch(`${constants_core_1.WEBSERVER_URL[(options?.server || 'production')]}${relativeUrl}`, {
52
+ headers: {
53
+ ...defaultHeaders,
54
+ ...options?.headers,
55
+ },
56
+ method: options?.method ?? 'GET',
57
+ body: JSON.stringify(options?.data),
58
+ signal: controller.signal,
59
+ });
60
+ clearTimeout(timeoutId);
61
+ const correlationId = res.headers['x-correlation-id'];
62
+ const logger = logger_1.Logger.getLogger();
63
+ if (!res.ok || res.status !== 200) {
64
+ if (correlationId && logger) {
65
+ logger.setTag('correlation_id', correlationId);
66
+ }
67
+ const error = new Error(`Request failed: ${res.status}`);
68
+ logger?.captureException(error, { correlationId, status: res.status });
69
+ throw error;
70
+ }
71
+ return res;
72
+ }
73
+ catch (error) {
74
+ clearTimeout(timeoutId);
75
+ if (error.name === 'AbortError') {
76
+ const timeoutError = new Error(`Request timeout after ${constants_core_1.REQUEST_TIMEOUT_MS / 1000}s: ${relativeUrl}`);
77
+ logger_1.Logger.log.error('fetchAugustWithKey', timeoutError, { relativeUrl });
78
+ throw timeoutError;
49
79
  }
50
- const error = new Error(`Request failed: ${res.status}`);
51
- logger?.captureException(error, { correlationId, status: res.status });
52
80
  throw error;
53
81
  }
54
- return res;
55
82
  }
56
83
  async function fetchAugustPublic(relativeUrl, options) {
57
84
  const defaultHeaders = {
58
85
  'content-type': 'application/json',
59
86
  accept: 'application/json',
60
87
  };
61
- const res = await fetch(`${constants_1.WEBSERVER_URL['public']}${relativeUrl}`, {
62
- headers: {
63
- ...defaultHeaders,
64
- ...options?.headers,
65
- },
66
- method: options?.method ?? 'GET',
67
- body: JSON.stringify(options?.data),
68
- });
69
- const correlationId = res.headers['x-correlation-id'];
70
- const logger = logger_1.Logger.getLogger();
71
- if (!res.ok || res.status !== 200) {
72
- if (correlationId && logger) {
73
- logger.setTag('correlation_id', correlationId);
88
+ const controller = new AbortController();
89
+ const timeoutId = setTimeout(() => controller.abort(), constants_core_1.REQUEST_TIMEOUT_MS);
90
+ try {
91
+ const res = await fetch(`${constants_core_1.WEBSERVER_URL['public']}${relativeUrl}`, {
92
+ headers: {
93
+ ...defaultHeaders,
94
+ ...options?.headers,
95
+ },
96
+ method: options?.method ?? 'GET',
97
+ body: JSON.stringify(options?.data),
98
+ signal: controller.signal,
99
+ });
100
+ clearTimeout(timeoutId);
101
+ const correlationId = res.headers['x-correlation-id'];
102
+ const logger = logger_1.Logger.getLogger();
103
+ if (!res.ok || res.status !== 200) {
104
+ if (correlationId && logger) {
105
+ logger.setTag('correlation_id', correlationId);
106
+ }
107
+ const error = new Error(`Request failed: ${res.status}`);
108
+ logger?.captureException(error, { correlationId, status: res.status });
109
+ throw error;
110
+ }
111
+ return res;
112
+ }
113
+ catch (error) {
114
+ clearTimeout(timeoutId);
115
+ if (error.name === 'AbortError') {
116
+ const timeoutError = new Error(`Request timeout after ${constants_core_1.REQUEST_TIMEOUT_MS / 1000}s: ${relativeUrl}`);
117
+ logger_1.Logger.log.error('fetchAugustPublic', timeoutError, { relativeUrl });
118
+ throw timeoutError;
74
119
  }
75
- const error = new Error(`Request failed: ${res.status}`);
76
- logger?.captureException(error, { correlationId, status: res.status });
77
120
  throw error;
78
121
  }
79
- return res;
80
122
  }
81
123
  async function fetchAugustWithBearer(bearerToken, relativeUrl, options) {
82
124
  const defaultHeaders = {
@@ -84,25 +126,40 @@ async function fetchAugustWithBearer(bearerToken, relativeUrl, options) {
84
126
  'content-type': 'application/json',
85
127
  accept: 'application/json',
86
128
  };
87
- const res = await fetch(`${constants_1.WEBSERVER_URL[(options?.server ?? 'production')]}${relativeUrl}`, {
88
- headers: {
89
- ...defaultHeaders,
90
- ...options.headers,
91
- },
92
- method: options.method,
93
- body: JSON.stringify(options.data),
94
- });
95
- const correlationId = res.headers['x-correlation-id'];
96
- const logger = logger_1.Logger.getLogger();
97
- if (!res.ok || res.status !== 200) {
98
- if (correlationId && logger) {
99
- logger.setTag('correlation_id', correlationId);
129
+ const controller = new AbortController();
130
+ const timeoutId = setTimeout(() => controller.abort(), constants_core_1.REQUEST_TIMEOUT_MS);
131
+ try {
132
+ const res = await fetch(`${constants_core_1.WEBSERVER_URL[(options?.server ?? 'production')]}${relativeUrl}`, {
133
+ headers: {
134
+ ...defaultHeaders,
135
+ ...options.headers,
136
+ },
137
+ method: options.method,
138
+ body: JSON.stringify(options.data),
139
+ signal: controller.signal,
140
+ });
141
+ clearTimeout(timeoutId);
142
+ const correlationId = res.headers['x-correlation-id'];
143
+ const logger = logger_1.Logger.getLogger();
144
+ if (!res.ok || res.status !== 200) {
145
+ if (correlationId && logger) {
146
+ logger.setTag('correlation_id', correlationId);
147
+ }
148
+ const error = new Error(`Request failed: ${res.status}`);
149
+ logger?.captureException(error, { correlationId, status: res.status });
150
+ throw error;
151
+ }
152
+ return res;
153
+ }
154
+ catch (error) {
155
+ clearTimeout(timeoutId);
156
+ if (error.name === 'AbortError') {
157
+ const timeoutError = new Error(`Request timeout after ${constants_core_1.REQUEST_TIMEOUT_MS / 1000}s: ${relativeUrl}`);
158
+ logger_1.Logger.log.error('fetchAugustWithBearer', timeoutError, { relativeUrl });
159
+ throw timeoutError;
100
160
  }
101
- const error = new Error(`Request failed: ${res.status}`);
102
- logger?.captureException(error, { correlationId, status: res.status });
103
161
  throw error;
104
162
  }
105
- return res;
106
163
  }
107
164
  function isRetryableError(error) {
108
165
  return ((error instanceof TypeError && error.message.includes('fetch failed')) ||
@@ -123,7 +180,7 @@ async function withRetry(fn, maxRetries = 3, baseDelay = 1000, shouldRetry = isR
123
180
  lastError = error;
124
181
  if (attempt < maxRetries && shouldRetry(error)) {
125
182
  const delay = baseDelay * Math.pow(2, attempt);
126
- console.warn(`#withRetry: Attempt ${attempt + 1} failed, retrying in ${delay}ms:`, error.message);
183
+ logger_1.Logger.log.warn('withRetry', `Attempt ${attempt + 1} failed, retrying in ${delay}ms: ${error.message}`);
127
184
  await new Promise((resolve) => setTimeout(resolve, delay));
128
185
  continue;
129
186
  }
@@ -139,7 +196,7 @@ async function fetchTokenizedVaults(pool, headers) {
139
196
  tokenizedVaults = exports.CACHE.get(key);
140
197
  }
141
198
  else {
142
- const tokenizedVaultsResponse = await fetchAugustPublic(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, { headers: headers });
199
+ const tokenizedVaultsResponse = await fetchAugustPublic(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, { headers: headers });
143
200
  tokenizedVaults =
144
201
  (await tokenizedVaultsResponse.json());
145
202
  exports.CACHE.set(key, tokenizedVaults);
@@ -155,35 +212,91 @@ async function fetchTokenPrice(symbol, provider, coinGeckoKey, headers) {
155
212
  console.error('#fetchTokenPrice: symbol parameter is undefined');
156
213
  return 0;
157
214
  }
215
+ let normalizedSymbol = symbol.toLowerCase();
216
+ normalizedSymbol = normalizedSymbol === 'xbtc' ? 'btc' : normalizedSymbol;
217
+ normalizedSymbol = normalizedSymbol === 'strbtc' ? 'btc' : normalizedSymbol;
218
+ const cacheKey = `price:${normalizedSymbol}:${provider ? 'with-provider' : 'no-provider'}`;
219
+ const cachedError = PRICE_ERROR_CACHE.get(cacheKey);
220
+ if (cachedError) {
221
+ logger_1.Logger.log.info('fetchTokenPrice', `Error cache HIT for ${normalizedSymbol} - throwing cached error`);
222
+ throw cachedError;
223
+ }
224
+ const cachedPrice = PRICE_CACHE.get(cacheKey);
225
+ if (cachedPrice !== undefined) {
226
+ logger_1.Logger.log.info('fetchTokenPrice', `Cache HIT for ${normalizedSymbol}: $${cachedPrice}`);
227
+ return cachedPrice;
228
+ }
229
+ const inflightRequest = PRICE_REQUESTS.get(cacheKey);
230
+ if (inflightRequest) {
231
+ logger_1.Logger.log.info('fetchTokenPrice', `In-flight request deduplication for ${normalizedSymbol}`);
232
+ return inflightRequest;
233
+ }
234
+ const pricePromise = (async () => {
235
+ try {
236
+ const price = await _fetchTokenPriceInternal(symbol, provider, coinGeckoKey, headers);
237
+ PRICE_CACHE.set(cacheKey, price);
238
+ PRICE_ERROR_CACHE.delete(cacheKey);
239
+ return price;
240
+ }
241
+ catch (error) {
242
+ const err = error instanceof Error ? error : new Error(String(error));
243
+ PRICE_ERROR_CACHE.set(cacheKey, err);
244
+ logger_1.Logger.log.info('fetchTokenPrice', `Cached error for ${normalizedSymbol}: ${err.message}`);
245
+ throw err;
246
+ }
247
+ finally {
248
+ PRICE_REQUESTS.delete(cacheKey);
249
+ }
250
+ })();
251
+ PRICE_REQUESTS.set(cacheKey, pricePromise);
252
+ return pricePromise;
253
+ }
254
+ async function _fetchTokenPriceInternal(symbol, provider, coinGeckoKey, headers) {
158
255
  let tokenizedVaults;
159
- if (exports.CACHE.get(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list)) {
160
- tokenizedVaults = exports.CACHE.get(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list);
256
+ if (exports.CACHE.get(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list)) {
257
+ tokenizedVaults = exports.CACHE.get(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list);
161
258
  }
162
259
  else {
163
- const tokenizedVaultsResponse = await withRetry(async () => await fetchAugustPublic(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, { headers: headers }), 5, 2000);
260
+ const tokenizedVaultsResponse = await withRetry(async () => await fetchAugustPublic(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, { headers: headers }), 5, 2000);
164
261
  if (!tokenizedVaultsResponse.ok) {
165
262
  throw new Error(`fetching tokenized vaults: ${tokenizedVaultsResponse?.statusText}`);
166
263
  }
167
264
  tokenizedVaults =
168
265
  (await tokenizedVaultsResponse.json());
169
- exports.CACHE.set(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, tokenizedVaults);
266
+ exports.CACHE.set(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.list, tokenizedVaults);
170
267
  }
171
268
  const vaultArray = tokenizedVaults.map((vault) => ({
172
269
  vault: vault.address,
173
270
  symbol: vault.receipt_token_symbol,
174
271
  }));
175
272
  const foundVaultLpAsset = vaultArray.find((v) => v.symbol?.toLowerCase() === symbol?.toLowerCase());
273
+ const version = (0, helpers_vaults_1.getVaultVersion)(foundVaultLpAsset?.vault);
274
+ if (foundVaultLpAsset?.vault && provider && version === 'evm-2') {
275
+ try {
276
+ const vaultContract = (0, helpers_web3_1.createContract)({
277
+ provider,
278
+ address: (0, ethers_1.getAddress)(foundVaultLpAsset.vault),
279
+ abi: abis_1.ABI_TOKENIZED_VAULT_V2,
280
+ });
281
+ const decimals = await (0, helpers_web3_1.getDecimals)(provider, await (0, helpers_web3_1.getReceiptTokenAddress)(provider, foundVaultLpAsset.vault));
282
+ const sharePrice = await vaultContract.getSharePrice();
283
+ return Number((0, helpers_core_1.toNormalizedBn)(sharePrice, decimals).normalized);
284
+ }
285
+ catch (e) {
286
+ throw new Error('failed to fetch token price for evm-2 vault');
287
+ }
288
+ }
176
289
  let _symbol = symbol?.toLowerCase();
290
+ _symbol = _symbol === 'xbtc' ? 'btc' : _symbol;
291
+ _symbol = _symbol === 'strbtc' ? 'btc' : _symbol;
177
292
  try {
178
- _symbol = _symbol === 'xbtc' ? 'btc' : _symbol;
179
- _symbol = _symbol === 'strbtc' ? 'btc' : _symbol;
180
293
  const res = await fetch(`https://prices.augustdigital.io/price/${_symbol}`, { headers: headers });
181
294
  if (res.status !== 200) {
182
295
  throw new Error(`fetching ${_symbol} price: ${res?.statusText}`);
183
296
  }
184
297
  const json = (await res.json());
185
298
  if (foundVaultLpAsset && provider) {
186
- const vaultContract = (0, web3_helpers_1.createContract)({
299
+ const vaultContract = (0, helpers_web3_1.createContract)({
187
300
  provider,
188
301
  address: (0, ethers_1.getAddress)(foundVaultLpAsset.vault),
189
302
  abi: abis_1.ABI_LENDING_POOL_V2,
@@ -194,14 +307,14 @@ async function fetchTokenPrice(symbol, provider, coinGeckoKey, headers) {
194
307
  vaultContract.decimals(),
195
308
  ]));
196
309
  const ratio = (totalAssets || BigInt(0)) / (totalSupply || BigInt(0)) || 1;
197
- return json.price * Number((0, core_helpers_1.toNormalizedBn)(ratio, decimals).normalized);
310
+ return json.price * Number((0, helpers_core_1.toNormalizedBn)(ratio, decimals).normalized);
198
311
  }
199
312
  return json.price;
200
313
  }
201
314
  catch (e) {
202
315
  const fallbackPrice = await (0, fetcher_1.fetchTokenPricesFromCoinGecko)(symbol, coinGeckoKey);
203
316
  if (foundVaultLpAsset && provider) {
204
- const vaultContract = (0, web3_helpers_1.createContract)({
317
+ const vaultContract = (0, helpers_web3_1.createContract)({
205
318
  provider,
206
319
  address: (0, ethers_1.getAddress)(foundVaultLpAsset.vault),
207
320
  abi: abis_1.ABI_LENDING_POOL_V2,
@@ -212,7 +325,7 @@ async function fetchTokenPrice(symbol, provider, coinGeckoKey, headers) {
212
325
  vaultContract.decimals(),
213
326
  ]));
214
327
  const ratio = (totalAssets || BigInt(0)) / (totalSupply || BigInt(0)) || 1;
215
- return fallbackPrice * Number((0, core_helpers_1.toNormalizedBn)(ratio, decimals).normalized);
328
+ return fallbackPrice * Number((0, helpers_core_1.toNormalizedBn)(ratio, decimals).normalized);
216
329
  }
217
330
  if (fallbackPrice) {
218
331
  return fallbackPrice;
@@ -229,7 +342,7 @@ async function fetchTokenizedVaultLoans(pool, chainId, headers) {
229
342
  loans = exports.CACHE.get(key);
230
343
  }
231
344
  else {
232
- const tokenizedVaultsResponse = await fetchAugustPublic(constants_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.loans(pool, chainId, true), { headers: headers });
345
+ const tokenizedVaultsResponse = await fetchAugustPublic(constants_core_1.WEBSERVER_ENDPOINTS.public.tokenizedVault.loans(pool, chainId, true), { headers: headers });
233
346
  loans = (await tokenizedVaultsResponse.json()).loans;
234
347
  exports.CACHE.set(key, loans);
235
348
  }