@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
@@ -1,51 +1,61 @@
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
+ (0, ethers_1.getAddress)('0x517677A19D8ae6FF600FB86C3C7bFCCD651e3eec'),
10
+ (0, ethers_1.getAddress)('0x8fFDcd8A96d293f45aA044d10b899F9D71897E8a'),
11
+ (0, ethers_1.getAddress)('0xd411aCaE2Bc7019322277A21ff005d94705661C5'),
12
+ (0, ethers_1.getAddress)('0xAEEb2fB279a5aA837367B9D2582F898a63b06ca1'),
13
+ (0, ethers_1.getAddress)('0x0C949AAf28bF0318bAa5f2cbF2F2D970f57879aB'),
14
+ (0, ethers_1.getAddress)('0xA38d92eC538e9aa3edb980b89701A9d38a1FE015'),
15
+ ];
16
+ exports.WRAPPER_ADAPTOR = {
17
+ 43114: (0, ethers_1.getAddress)('0xb2C57614B93c41A7Ec3B91980C0Bb7453904c6e8'),
18
+ 1: (0, ethers_1.getAddress)('0x044155804b2ef8fc53C69E3661ceA9b905EDE7Bc'),
36
19
  };
37
- exports.SUBGRAPH_POOL_URLS = SUBGRAPH_POOL_URLS;
38
20
  exports.OLD_LENDING_POOLS = [
39
- '0xe1B4d34E8754600962Cd944B535180Bd758E6c2e',
40
- '0xEBac5e50003d4B17Be422ff9775043cD61002f7f',
41
- '0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42',
21
+ (0, ethers_1.getAddress)('0xe1B4d34E8754600962Cd944B535180Bd758E6c2e'),
22
+ (0, ethers_1.getAddress)('0xEBac5e50003d4B17Be422ff9775043cD61002f7f'),
23
+ (0, ethers_1.getAddress)('0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42'),
42
24
  ];
43
25
  exports.IDLE_CAPITAL_BORROWER_ADDRESS = [
44
- '0x2151C90C93F52bE82186f162c86DaEABc8911188',
45
- '0xb74c137E5f976dbdCC638Ec9fd3e05d6D9124E55',
26
+ (0, ethers_1.getAddress)('0x2151C90C93F52bE82186f162c86DaEABc8911188'),
27
+ (0, ethers_1.getAddress)('0xb74c137E5f976dbdCC638Ec9fd3e05d6D9124E55'),
28
+ ];
29
+ exports.VAULT_FUNCTIONS_V1 = [
30
+ 'decimals',
31
+ 'asset',
32
+ 'totalSupply',
33
+ 'totalAssets',
34
+ 'maxSupply',
35
+ 'withdrawalFee',
36
+ 'lagDuration',
37
+ 'withdrawalsPaused',
38
+ ];
39
+ exports.VAULT_FUNCTIONS_V2 = [
40
+ 'assetsWhitelistAddress',
41
+ 'getTotalAssets',
42
+ 'asset',
43
+ 'withdrawalFee',
44
+ 'maxDepositAmount',
45
+ 'lagDuration',
46
+ 'withdrawalsPaused',
47
+ 'lpTokenAddress',
48
+ ];
49
+ exports.VAULT_FUNCTIONS_V2_RECEIPT = [
50
+ 'decimals',
51
+ 'totalSupply',
52
+ ];
53
+ exports.VAULT_FUNCTIONS_V2_WHITELISTED_ASSETS = [
54
+ 'getWhitelistedAssets',
46
55
  ];
47
56
  const GOLDSKY_BASE_URL = 'https://api.goldsky.com/api/private/project_cm9g0xy3o4j6v01vd34r3hvv9/subgraphs';
48
57
  exports.SUBGRAPH_VAULT_URLS = {
58
+ testWETHTSA: ``,
49
59
  tacUSR: `${GOLDSKY_BASE_URL}/august-eth-tacUSR/1.0.0/gn`,
50
60
  upINJUSDT: `${GOLDSKY_BASE_URL}/august-eth-upINJUSDT/1.0.0/gn`,
51
61
  'tac-tETH': `${GOLDSKY_BASE_URL}/august-eth-tactETH/1.0.0/gn`,
@@ -72,6 +82,7 @@ exports.SUBGRAPH_VAULT_URLS = {
72
82
  upAVAX: `${GOLDSKY_BASE_URL}/august-avax-upAVAX/1.0.0/gn`,
73
83
  TACrsEth: `${GOLDSKY_BASE_URL}/august-eth-TACrsEth/1.0.0/gn`,
74
84
  mUSD: `${GOLDSKY_BASE_URL}/august-mezo-mUSD/1.0.0/gn`,
85
+ wildUSD: `${GOLDSKY_BASE_URL}/august-eth-wildUSD/1.0.0/gn`,
75
86
  earnAUSD: `${GOLDSKY_BASE_URL}/august-eth-earnAUSD/1.0.0/gn`,
76
87
  AlpineCoinshiftUSDC: `${GOLDSKY_BASE_URL}/august-eth-AlpineCoinshiftUSDC/1.0.0/gn`,
77
88
  AlpineUSDCFlagship: `${GOLDSKY_BASE_URL}/august-eth-AlpineUSDCFlagship/1.0.0/gn`,
@@ -79,6 +90,9 @@ exports.SUBGRAPH_VAULT_URLS = {
79
90
  maxiUSR: `${GOLDSKY_BASE_URL}/august-eth-maxiUSR/1.0.0/gn`,
80
91
  upGAMMAusdc: `${GOLDSKY_BASE_URL}/august-eth-upGAMMAusdc/1.0.0/gn`,
81
92
  xHYPE: `${GOLDSKY_BASE_URL}/august-hyperevm-xHYPE/1.0.0/gn`,
93
+ AlpineBTC: `${GOLDSKY_BASE_URL}/august-eth-AlpineBTC/1.0.0/gn`,
94
+ preNUSD: `${GOLDSKY_BASE_URL}/august-eth-preNUSD/1.0.0/gn`,
95
+ upyzUSD: `${GOLDSKY_BASE_URL}/august-plasma-upyzUSD/1.0.0/gn`,
82
96
  };
83
97
  exports.VAULT_SYMBOLS = {
84
98
  '0x686c83Aa81ba206354fDcbc2cd282B4531365E29': 'tacUSR',
@@ -115,42 +129,9 @@ exports.VAULT_SYMBOLS = {
115
129
  '0xdA89af5bF2eb0B225d787aBfA9095610f2E79e7D': 'maxiUSR',
116
130
  '0x998D7b14c123c1982404562b68edDB057b0477cB': 'upGAMMAusdc',
117
131
  '0x3a214b33A648f17fdcb78eD895dD0579dc3cc330': 'xHYPE',
132
+ '0x18EE038C114a07f4B08b420fb1E4149a4F357249': 'wildUSD',
133
+ '0x6625bA54DC861e9f5c678983dBa5BA96d19a9224': 'AlpineBTC',
134
+ '0x866C6c6627303Be103814150fC0e886BE5D9ea83': 'preNUSD',
118
135
  };
119
136
  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
137
+ //# 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',
@@ -96,6 +71,25 @@ exports.NETWORKS = {
96
71
  chainId: 31612,
97
72
  explorer: 'https://explorer.mezo.org',
98
73
  },
74
+ 9745: {
75
+ name: 'Plasma',
76
+ chainId: 9745,
77
+ explorer: 'https://plasmascan.to',
78
+ },
99
79
  };
100
80
  exports.AVAILABLE_CHAINS = Object.keys(exports.NETWORKS).map((c) => Number(c));
101
- //# sourceMappingURL=web3.js.map
81
+ exports.FALLBACK_DECIMALS = 18;
82
+ exports.FALLBACK_CHAINID = 42161;
83
+ exports.FALLBACK_RPC_URLS = {
84
+ 1: ['https://ethereum-rpc.publicnode.com'],
85
+ 999: ['https://rpc.hyperliquid.xyz/evm'],
86
+ 239: ['https://rpc.ankr.com/tac'],
87
+ 80094: ['https://berachain-rpc.publicnode.com'],
88
+ 59144: ['https://linea-rpc.publicnode.com'],
89
+ 43111: ['https://rpc.hemi.network/rpc'],
90
+ 146: ['https://rpc.soniclabs.com'],
91
+ 534352: ['https://scroll.api.onfinality.io/public'],
92
+ 10: ['https://optimism-mainnet.public.blastapi.io'],
93
+ 9745: ['https://rpc.plasma.to'],
94
+ };
95
+ //# 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;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,uBAAuB;KAClC;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;IACnD,IAAI,EAAE,CAAC,uBAAuB,CAAC;CAIhC,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
  }