upshift-finance 1.0.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 (316) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -0
  3. package/lib/abis/AddressResolver.d.ts +28 -0
  4. package/lib/abis/AddressResolver.js +23 -0
  5. package/lib/abis/ChainlinkV3.d.ts +87 -0
  6. package/lib/abis/ChainlinkV3.js +117 -0
  7. package/lib/abis/ERC20.d.ts +168 -0
  8. package/lib/abis/ERC20.js +226 -0
  9. package/lib/abis/ERC20_Bytes32.d.ts +139 -0
  10. package/lib/abis/ERC20_Bytes32.js +196 -0
  11. package/lib/abis/ERC4626.d.ts +364 -0
  12. package/lib/abis/ERC4626.js +507 -0
  13. package/lib/abis/ERC721.d.ts +231 -0
  14. package/lib/abis/ERC721.js +321 -0
  15. package/lib/abis/FeeOracle.d.ts +120 -0
  16. package/lib/abis/FeeOracle.js +162 -0
  17. package/lib/abis/LendingPool.d.ts +1393 -0
  18. package/lib/abis/LendingPool.js +1807 -0
  19. package/lib/abis/LendingPoolV2.d.ts +1413 -0
  20. package/lib/abis/LendingPoolV2.js +1833 -0
  21. package/lib/abis/LendingPoolV3.d.ts +1677 -0
  22. package/lib/abis/LendingPoolV3.js +1160 -0
  23. package/lib/abis/Loan.d.ts +837 -0
  24. package/lib/abis/Loan.js +1080 -0
  25. package/lib/abis/MultiAssetNativeDepositWrapper.d.ts +137 -0
  26. package/lib/abis/MultiAssetNativeDepositWrapper.js +125 -0
  27. package/lib/abis/Multicall3.d.ts +30 -0
  28. package/lib/abis/Multicall3.js +97 -0
  29. package/lib/abis/OFT.d.ts +116 -0
  30. package/lib/abis/OFT.js +85 -0
  31. package/lib/abis/PoolAdapter.d.ts +36 -0
  32. package/lib/abis/PoolAdapter.js +51 -0
  33. package/lib/abis/RewardDistributor.d.ts +267 -0
  34. package/lib/abis/RewardDistributor.js +352 -0
  35. package/lib/abis/RwaRedeemSubaccount.d.ts +747 -0
  36. package/lib/abis/RwaRedeemSubaccount.js +548 -0
  37. package/lib/abis/SmartAccount.d.ts +17 -0
  38. package/lib/abis/SmartAccount.js +19 -0
  39. package/lib/abis/SwapRouter.d.ts +1043 -0
  40. package/lib/abis/SwapRouter.js +740 -0
  41. package/lib/abis/TextResolver.d.ts +16 -0
  42. package/lib/abis/TextResolver.js +16 -0
  43. package/lib/abis/TokenizedVaultV2.d.ts +1364 -0
  44. package/lib/abis/TokenizedVaultV2.js +1041 -0
  45. package/lib/abis/TokenizedVaultV2DepositWithPermit.d.ts +1456 -0
  46. package/lib/abis/TokenizedVaultV2DepositWithPermit.js +1878 -0
  47. package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
  48. package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
  49. package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.d.ts +454 -0
  50. package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.js +327 -0
  51. package/lib/abis/TokenizedVaultV2WhitelistedAllocation.d.ts +1466 -0
  52. package/lib/abis/TokenizedVaultV2WhitelistedAllocation.js +1092 -0
  53. package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
  54. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
  55. package/lib/abis/UniversalResolverResolve.d.ts +69 -0
  56. package/lib/abis/UniversalResolverResolve.js +35 -0
  57. package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
  58. package/lib/abis/UniversalSignatureValidator.js +30 -0
  59. package/lib/abis/WrapperAdapter.d.ts +71 -0
  60. package/lib/abis/WrapperAdapter.js +77 -0
  61. package/lib/abis/index.d.ts +34 -0
  62. package/lib/abis/index.js +51 -0
  63. package/lib/adapters/evm/getters.d.ts +19 -0
  64. package/lib/adapters/evm/getters.js +209 -0
  65. package/lib/adapters/evm/index.d.ts +353 -0
  66. package/lib/adapters/evm/index.js +434 -0
  67. package/lib/adapters/evm/utils.d.ts +8 -0
  68. package/lib/adapters/evm/utils.js +51 -0
  69. package/lib/adapters/solana/constants.d.ts +33 -0
  70. package/lib/adapters/solana/constants.js +52 -0
  71. package/lib/adapters/solana/getters.d.ts +11 -0
  72. package/lib/adapters/solana/getters.js +165 -0
  73. package/lib/adapters/solana/idl/vault-idl.d.ts +272 -0
  74. package/lib/adapters/solana/idl/vault-idl.js +1084 -0
  75. package/lib/adapters/solana/index.d.ts +233 -0
  76. package/lib/adapters/solana/index.js +291 -0
  77. package/lib/adapters/solana/types.d.ts +67 -0
  78. package/lib/adapters/solana/types.js +3 -0
  79. package/lib/adapters/solana/utils.d.ts +141 -0
  80. package/lib/adapters/solana/utils.js +595 -0
  81. package/lib/adapters/solana/vault.actions.d.ts +57 -0
  82. package/lib/adapters/solana/vault.actions.js +379 -0
  83. package/lib/adapters/stellar/actions.d.ts +28 -0
  84. package/lib/adapters/stellar/actions.js +77 -0
  85. package/lib/adapters/stellar/constants.d.ts +43 -0
  86. package/lib/adapters/stellar/constants.js +53 -0
  87. package/lib/adapters/stellar/getters.d.ts +68 -0
  88. package/lib/adapters/stellar/getters.js +290 -0
  89. package/lib/adapters/stellar/index.d.ts +114 -0
  90. package/lib/adapters/stellar/index.js +175 -0
  91. package/lib/adapters/stellar/soroban.d.ts +123 -0
  92. package/lib/adapters/stellar/soroban.js +613 -0
  93. package/lib/adapters/stellar/submit.d.ts +34 -0
  94. package/lib/adapters/stellar/submit.js +149 -0
  95. package/lib/adapters/stellar/types.d.ts +58 -0
  96. package/lib/adapters/stellar/types.js +6 -0
  97. package/lib/adapters/stellar/utils.d.ts +24 -0
  98. package/lib/adapters/stellar/utils.js +34 -0
  99. package/lib/adapters/sui/constants.d.ts +14 -0
  100. package/lib/adapters/sui/constants.js +29 -0
  101. package/lib/adapters/sui/getters.d.ts +9 -0
  102. package/lib/adapters/sui/getters.js +60 -0
  103. package/lib/adapters/sui/index.d.ts +45 -0
  104. package/lib/adapters/sui/index.js +101 -0
  105. package/lib/adapters/sui/transformer.d.ts +10 -0
  106. package/lib/adapters/sui/transformer.js +107 -0
  107. package/lib/adapters/sui/types.d.ts +66 -0
  108. package/lib/adapters/sui/types.js +3 -0
  109. package/lib/adapters/sui/utils.d.ts +10 -0
  110. package/lib/adapters/sui/utils.js +29 -0
  111. package/lib/core/analytics/chain-name.d.ts +9 -0
  112. package/lib/core/analytics/chain-name.js +34 -0
  113. package/lib/core/analytics/constants.d.ts +5 -0
  114. package/lib/core/analytics/constants.js +9 -0
  115. package/lib/core/analytics/env.d.ts +29 -0
  116. package/lib/core/analytics/env.js +59 -0
  117. package/lib/core/analytics/index.d.ts +36 -0
  118. package/lib/core/analytics/index.js +79 -0
  119. package/lib/core/analytics/instrumentation.d.ts +29 -0
  120. package/lib/core/analytics/instrumentation.js +277 -0
  121. package/lib/core/analytics/method-taxonomy.d.ts +19 -0
  122. package/lib/core/analytics/method-taxonomy.js +128 -0
  123. package/lib/core/analytics/metrics.d.ts +33 -0
  124. package/lib/core/analytics/metrics.js +116 -0
  125. package/lib/core/analytics/sanitize.d.ts +44 -0
  126. package/lib/core/analytics/sanitize.js +260 -0
  127. package/lib/core/analytics/sentry-runtime.d.ts +15 -0
  128. package/lib/core/analytics/sentry-runtime.js +97 -0
  129. package/lib/core/analytics/sentry.d.ts +67 -0
  130. package/lib/core/analytics/sentry.js +613 -0
  131. package/lib/core/analytics/types.d.ts +48 -0
  132. package/lib/core/analytics/types.js +3 -0
  133. package/lib/core/analytics/user-identity.d.ts +41 -0
  134. package/lib/core/analytics/user-identity.js +141 -0
  135. package/lib/core/analytics/version.d.ts +6 -0
  136. package/lib/core/analytics/version.js +10 -0
  137. package/lib/core/attribution.d.ts +111 -0
  138. package/lib/core/attribution.js +142 -0
  139. package/lib/core/auth/index.d.ts +1 -0
  140. package/lib/core/auth/index.js +18 -0
  141. package/lib/core/auth/verify.d.ts +2 -0
  142. package/lib/core/auth/verify.js +31 -0
  143. package/lib/core/base.class.d.ts +152 -0
  144. package/lib/core/base.class.js +172 -0
  145. package/lib/core/cache.d.ts +9 -0
  146. package/lib/core/cache.js +31 -0
  147. package/lib/core/constants/adapters.d.ts +103 -0
  148. package/lib/core/constants/adapters.js +180 -0
  149. package/lib/core/constants/core.d.ts +133 -0
  150. package/lib/core/constants/core.js +209 -0
  151. package/lib/core/constants/swap-router.d.ts +150 -0
  152. package/lib/core/constants/swap-router.js +169 -0
  153. package/lib/core/constants/vaults.d.ts +93 -0
  154. package/lib/core/constants/vaults.js +273 -0
  155. package/lib/core/constants/web3.d.ts +91 -0
  156. package/lib/core/constants/web3.js +229 -0
  157. package/lib/core/errors/index.d.ts +114 -0
  158. package/lib/core/errors/index.js +183 -0
  159. package/lib/core/fetcher.d.ts +198 -0
  160. package/lib/core/fetcher.js +903 -0
  161. package/lib/core/helpers/adapters.d.ts +13 -0
  162. package/lib/core/helpers/adapters.js +39 -0
  163. package/lib/core/helpers/chain-address.d.ts +13 -0
  164. package/lib/core/helpers/chain-address.js +47 -0
  165. package/lib/core/helpers/chain-error.d.ts +207 -0
  166. package/lib/core/helpers/chain-error.js +682 -0
  167. package/lib/core/helpers/chain-support.d.ts +80 -0
  168. package/lib/core/helpers/chain-support.js +115 -0
  169. package/lib/core/helpers/core.d.ts +68 -0
  170. package/lib/core/helpers/core.js +285 -0
  171. package/lib/core/helpers/explorer-link.d.ts +16 -0
  172. package/lib/core/helpers/explorer-link.js +26 -0
  173. package/lib/core/helpers/multicall.d.ts +68 -0
  174. package/lib/core/helpers/multicall.js +103 -0
  175. package/lib/core/helpers/revert-decode.d.ts +248 -0
  176. package/lib/core/helpers/revert-decode.js +515 -0
  177. package/lib/core/helpers/signer.d.ts +52 -0
  178. package/lib/core/helpers/signer.js +145 -0
  179. package/lib/core/helpers/swap-router.d.ts +211 -0
  180. package/lib/core/helpers/swap-router.js +480 -0
  181. package/lib/core/helpers/vault-version.d.ts +23 -0
  182. package/lib/core/helpers/vault-version.js +75 -0
  183. package/lib/core/helpers/vaults.d.ts +89 -0
  184. package/lib/core/helpers/vaults.js +235 -0
  185. package/lib/core/helpers/web3.d.ts +353 -0
  186. package/lib/core/helpers/web3.js +992 -0
  187. package/lib/core/index.d.ts +23 -0
  188. package/lib/core/index.js +40 -0
  189. package/lib/core/logger/index.d.ts +98 -0
  190. package/lib/core/logger/index.js +144 -0
  191. package/lib/core/logger/slack.d.ts +16 -0
  192. package/lib/core/logger/slack.js +57 -0
  193. package/lib/core/vault-metadata.d.ts +12 -0
  194. package/lib/core/vault-metadata.js +42 -0
  195. package/lib/core/version-check.d.ts +58 -0
  196. package/lib/core/version-check.js +182 -0
  197. package/lib/evm/index.d.ts +2 -0
  198. package/lib/evm/index.js +19 -0
  199. package/lib/evm/methods/crossChainVault.d.ts +128 -0
  200. package/lib/evm/methods/crossChainVault.js +853 -0
  201. package/lib/evm/methods/crossChainVaultRegistry.d.ts +93 -0
  202. package/lib/evm/methods/crossChainVaultRegistry.js +240 -0
  203. package/lib/evm/methods/index.d.ts +2 -0
  204. package/lib/evm/methods/index.js +19 -0
  205. package/lib/evm/types/crossChain.d.ts +363 -0
  206. package/lib/evm/types/crossChain.js +20 -0
  207. package/lib/evm/types/index.d.ts +1 -0
  208. package/lib/evm/types/index.js +18 -0
  209. package/lib/index.d.ts +30 -0
  210. package/lib/index.js +52 -0
  211. package/lib/main.d.ts +527 -0
  212. package/lib/main.js +601 -0
  213. package/lib/modules/api/fetcher.d.ts +82 -0
  214. package/lib/modules/api/fetcher.js +150 -0
  215. package/lib/modules/api/index.d.ts +1 -0
  216. package/lib/modules/api/index.js +6 -0
  217. package/lib/modules/api/main.d.ts +313 -0
  218. package/lib/modules/api/main.js +479 -0
  219. package/lib/modules/sub-accounts/fetcher.d.ts +53 -0
  220. package/lib/modules/sub-accounts/fetcher.js +120 -0
  221. package/lib/modules/sub-accounts/index.d.ts +2 -0
  222. package/lib/modules/sub-accounts/index.js +19 -0
  223. package/lib/modules/sub-accounts/main.d.ts +243 -0
  224. package/lib/modules/sub-accounts/main.js +205 -0
  225. package/lib/modules/sub-accounts/utils.d.ts +106 -0
  226. package/lib/modules/sub-accounts/utils.js +112 -0
  227. package/lib/modules/vaults/adapter.helpers.d.ts +64 -0
  228. package/lib/modules/vaults/adapter.helpers.js +184 -0
  229. package/lib/modules/vaults/fetcher.d.ts +147 -0
  230. package/lib/modules/vaults/fetcher.js +368 -0
  231. package/lib/modules/vaults/getters.d.ts +570 -0
  232. package/lib/modules/vaults/getters.js +3051 -0
  233. package/lib/modules/vaults/index.d.ts +20 -0
  234. package/lib/modules/vaults/index.js +44 -0
  235. package/lib/modules/vaults/main.d.ts +601 -0
  236. package/lib/modules/vaults/main.js +1623 -0
  237. package/lib/modules/vaults/prefetch.d.ts +65 -0
  238. package/lib/modules/vaults/prefetch.js +120 -0
  239. package/lib/modules/vaults/read.actions.d.ts +225 -0
  240. package/lib/modules/vaults/read.actions.js +596 -0
  241. package/lib/modules/vaults/types.d.ts +71 -0
  242. package/lib/modules/vaults/types.js +3 -0
  243. package/lib/modules/vaults/utils/call-data-decoder.d.ts +61 -0
  244. package/lib/modules/vaults/utils/call-data-decoder.js +194 -0
  245. package/lib/modules/vaults/utils/date-utils.d.ts +50 -0
  246. package/lib/modules/vaults/utils/date-utils.js +84 -0
  247. package/lib/modules/vaults/utils.d.ts +140 -0
  248. package/lib/modules/vaults/utils.js +799 -0
  249. package/lib/modules/vaults/write.actions.d.ts +529 -0
  250. package/lib/modules/vaults/write.actions.js +1749 -0
  251. package/lib/polyfills.d.ts +1 -0
  252. package/lib/polyfills.js +12 -0
  253. package/lib/sdk.d.ts +26721 -0
  254. package/lib/services/coingecko/fetcher.d.ts +15 -0
  255. package/lib/services/coingecko/fetcher.js +67 -0
  256. package/lib/services/coingecko/index.d.ts +2 -0
  257. package/lib/services/coingecko/index.js +19 -0
  258. package/lib/services/coingecko/utils.d.ts +1 -0
  259. package/lib/services/coingecko/utils.js +24 -0
  260. package/lib/services/debank/fetcher.d.ts +126 -0
  261. package/lib/services/debank/fetcher.js +47 -0
  262. package/lib/services/debank/index.d.ts +2 -0
  263. package/lib/services/debank/index.js +19 -0
  264. package/lib/services/debank/utils.d.ts +38 -0
  265. package/lib/services/debank/utils.js +297 -0
  266. package/lib/services/layerzero/deposits.d.ts +49 -0
  267. package/lib/services/layerzero/deposits.js +166 -0
  268. package/lib/services/layerzero/redeems.d.ts +20 -0
  269. package/lib/services/layerzero/redeems.js +92 -0
  270. package/lib/services/layerzero/utils.d.ts +9 -0
  271. package/lib/services/layerzero/utils.js +22 -0
  272. package/lib/services/octavfi/fetcher.d.ts +9 -0
  273. package/lib/services/octavfi/fetcher.js +103 -0
  274. package/lib/services/octavfi/index.d.ts +3 -0
  275. package/lib/services/octavfi/index.js +20 -0
  276. package/lib/services/octavfi/types.d.ts +34 -0
  277. package/lib/services/octavfi/types.js +3 -0
  278. package/lib/services/octavfi/utils.d.ts +16 -0
  279. package/lib/services/octavfi/utils.js +212 -0
  280. package/lib/services/subgraph/fetcher.d.ts +2 -0
  281. package/lib/services/subgraph/fetcher.js +61 -0
  282. package/lib/services/subgraph/index.d.ts +2 -0
  283. package/lib/services/subgraph/index.js +19 -0
  284. package/lib/services/subgraph/schema.d.ts +45 -0
  285. package/lib/services/subgraph/schema.js +75 -0
  286. package/lib/services/subgraph/vaults.d.ts +25 -0
  287. package/lib/services/subgraph/vaults.js +1106 -0
  288. package/lib/services/swap-quotes/index.d.ts +105 -0
  289. package/lib/services/swap-quotes/index.js +77 -0
  290. package/lib/services/swap-quotes/paraswap.d.ts +51 -0
  291. package/lib/services/swap-quotes/paraswap.js +138 -0
  292. package/lib/types/api.d.ts +280 -0
  293. package/lib/types/api.js +3 -0
  294. package/lib/types/index.d.ts +12 -0
  295. package/lib/types/index.js +28 -0
  296. package/lib/types/points.d.ts +28 -0
  297. package/lib/types/points.js +3 -0
  298. package/lib/types/pools.d.ts +144 -0
  299. package/lib/types/pools.js +3 -0
  300. package/lib/types/staking.d.ts +28 -0
  301. package/lib/types/staking.js +3 -0
  302. package/lib/types/sub-accounts.d.ts +140 -0
  303. package/lib/types/sub-accounts.js +3 -0
  304. package/lib/types/subgraph.d.ts +74 -0
  305. package/lib/types/subgraph.js +3 -0
  306. package/lib/types/typed-contract.d.ts +102 -0
  307. package/lib/types/typed-contract.js +3 -0
  308. package/lib/types/user.d.ts +1 -0
  309. package/lib/types/user.js +3 -0
  310. package/lib/types/vaults.d.ts +714 -0
  311. package/lib/types/vaults.js +24 -0
  312. package/lib/types/web3.d.ts +51 -0
  313. package/lib/types/web3.js +14 -0
  314. package/lib/types/webserver.d.ts +698 -0
  315. package/lib/types/webserver.js +3 -0
  316. package/package.json +78 -0
@@ -0,0 +1,66 @@
1
+ import type { IHIstoricalSnapshot } from '../../types';
2
+ export interface IEmberVault {
3
+ address: string;
4
+ id: string;
5
+ name: string;
6
+ description: string;
7
+ logoUrl: string;
8
+ status: 'active' | 'beta' | 'deprecated';
9
+ publicType: string;
10
+ strategy: string;
11
+ createdAt: number;
12
+ totalDeposits: string;
13
+ totalDepositsInUsdE9: string;
14
+ maxDepositsAllowed: string;
15
+ rateE9: string;
16
+ managementFeePercentE9: string;
17
+ weeklyPerformanceFeeBpsE9: string;
18
+ withdrawalPeriodDays: number;
19
+ minWithdrawalSharesE9: string;
20
+ historicalSnapshots?: IHIstoricalSnapshot[];
21
+ max_drawdown?: number | null;
22
+ depositCoin: {
23
+ address: string;
24
+ symbol: string;
25
+ name: string;
26
+ decimals: number;
27
+ logoUrl: string;
28
+ priceE9: string;
29
+ type: string;
30
+ };
31
+ receiptCoin: {
32
+ address: string;
33
+ symbol: string;
34
+ name: string;
35
+ decimals: number;
36
+ logoUrl: string;
37
+ priceE9: string;
38
+ type: string;
39
+ };
40
+ reportedApy: {
41
+ apyE9: string;
42
+ reportedApyE9: string;
43
+ updatedAt: string;
44
+ };
45
+ managers: Array<{
46
+ id: string;
47
+ name: string;
48
+ logoUrl: string;
49
+ websiteUrl: string;
50
+ }>;
51
+ subAccounts: Array<{
52
+ address: string;
53
+ manager: {
54
+ id: string;
55
+ name: string;
56
+ logoUrl: string;
57
+ websiteUrl: string;
58
+ };
59
+ }>;
60
+ rewards: any[];
61
+ }
62
+ export interface IFetchEmberVaultsOptions {
63
+ limit?: number;
64
+ offset?: number;
65
+ status?: string;
66
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Convert E9 format to regular number
3
+ */
4
+ export declare function convertFromE9(value: string | number): number;
5
+ /**
6
+ * Calculate capacity utilization percentage
7
+ */
8
+ export declare function calculateUtilization(current: string | number, maximum: string | number): number;
9
+ export { isSuiAddress } from '../../core/helpers/chain-address';
10
+ export declare function isSuiVault(chainId: number): boolean;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSuiAddress = void 0;
4
+ exports.convertFromE9 = convertFromE9;
5
+ exports.calculateUtilization = calculateUtilization;
6
+ exports.isSuiVault = isSuiVault;
7
+ const constants_1 = require("./constants");
8
+ /**
9
+ * Convert E9 format to regular number
10
+ */
11
+ function convertFromE9(value) {
12
+ return Number(value) / constants_1.EMBER_DEFAULTS.E9_DIVISOR;
13
+ }
14
+ /**
15
+ * Calculate capacity utilization percentage
16
+ */
17
+ function calculateUtilization(current, maximum) {
18
+ const currentValue = Number(current) || 0;
19
+ const maxValue = Number(maximum) || 0;
20
+ if (maxValue === 0)
21
+ return 0;
22
+ return Math.min((currentValue / maxValue) * 100, 100);
23
+ }
24
+ var chain_address_1 = require("../../core/helpers/chain-address");
25
+ Object.defineProperty(exports, "isSuiAddress", { enumerable: true, get: function () { return chain_address_1.isSuiAddress; } });
26
+ function isSuiVault(chainId) {
27
+ return chainId === constants_1.SUI_CHAIN_ID;
28
+ }
29
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Map a numeric `chainId` to a stable lowercase slug for use as a Sentry tag
3
+ * value. Resolves both EVM chains ({@link NETWORKS}) and synthetic non-EVM
4
+ * chain IDs ({@link SPECIAL_CHAINS}); unknown IDs return `'unknown:<id>'`.
5
+ *
6
+ * @param chainId - Numeric chain ID, including negative IDs for non-EVM chains.
7
+ * @returns Slugified chain label (e.g. `'ethereum'`, `'arbitrum-one'`, `'solana'`).
8
+ */
9
+ export declare function chainIdToTagValue(chainId: number | undefined): string;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chainIdToTagValue = chainIdToTagValue;
4
+ const web3_1 = require("../constants/web3");
5
+ /**
6
+ * Map a numeric `chainId` to a stable lowercase slug for use as a Sentry tag
7
+ * value. Resolves both EVM chains ({@link NETWORKS}) and synthetic non-EVM
8
+ * chain IDs ({@link SPECIAL_CHAINS}); unknown IDs return `'unknown:<id>'`.
9
+ *
10
+ * @param chainId - Numeric chain ID, including negative IDs for non-EVM chains.
11
+ * @returns Slugified chain label (e.g. `'ethereum'`, `'arbitrum-one'`, `'solana'`).
12
+ */
13
+ function chainIdToTagValue(chainId) {
14
+ if (chainId === undefined || chainId === null || Number.isNaN(chainId)) {
15
+ return 'unknown';
16
+ }
17
+ for (const entry of Object.values(web3_1.SPECIAL_CHAINS)) {
18
+ if (entry.chainId === chainId) {
19
+ return slugify(entry.name);
20
+ }
21
+ }
22
+ const network = web3_1.NETWORKS[chainId];
23
+ if (network) {
24
+ return slugify(network.name);
25
+ }
26
+ return `unknown:${chainId}`;
27
+ }
28
+ function slugify(input) {
29
+ return input
30
+ .toLowerCase()
31
+ .replace(/[^a-z0-9]+/g, '-')
32
+ .replace(/^-+|-+$/g, '');
33
+ }
34
+ //# sourceMappingURL=chain-name.js.map
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Sentry DSN for SDK analytics.
3
+ * This is an internal constant - not exposed to SDK users.
4
+ */
5
+ export declare const SENTRY_DSN = "https://ca39246016d0b43154f0640314cbd3b5@o4507215496609792.ingest.de.sentry.io/4511864614813776";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SENTRY_DSN = void 0;
4
+ /**
5
+ * Sentry DSN for SDK analytics.
6
+ * This is an internal constant - not exposed to SDK users.
7
+ */
8
+ exports.SENTRY_DSN = 'https://ca39246016d0b43154f0640314cbd3b5@o4507215496609792.ingest.de.sentry.io/4511864614813776';
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Environment-variable gates for analytics. Pure functions — safe to import
3
+ * anywhere, no Sentry side effects. Tested directly in `analytics.test.js`.
4
+ */
5
+ /**
6
+ * Read a process env var without crashing in browsers or in bundles where
7
+ * `process.env` is a frozen / proxied object that throws on missing keys.
8
+ */
9
+ export declare function readEnv(name: string): string | undefined;
10
+ /**
11
+ * `AUGUST_SDK_FORCE_ANALYTICS=1` bypasses the dev/test and localhost gates.
12
+ * Used by our own smoke-test script and by partners deliberately exercising
13
+ * telemetry in a non-prod environment.
14
+ */
15
+ export declare function isAnalyticsForcedOnViaEnv(): boolean;
16
+ /**
17
+ * `AUGUST_SDK_DISABLE_ANALYTICS=1` is the env equivalent of passing
18
+ * `analytics: { enabled: false }`. Useful when partners can't easily plumb
19
+ * config through (CI runners, ops scripts).
20
+ */
21
+ export declare function isAnalyticsDisabledViaEnv(): boolean;
22
+ /**
23
+ * True when `NODE_ENV` is `'development'` or `'test'`. The SDK auto-disables
24
+ * analytics in these environments so partners' local dev runs and Jest suites
25
+ * don't pollute the production Sentry project.
26
+ *
27
+ * `NODE_ENV` undefined / `'production'` / `'staging'` / anything else → false.
28
+ */
29
+ export declare function isNodeDevOrTestEnv(): boolean;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Environment-variable gates for analytics. Pure functions — safe to import
4
+ * anywhere, no Sentry side effects. Tested directly in `analytics.test.js`.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.readEnv = readEnv;
8
+ exports.isAnalyticsForcedOnViaEnv = isAnalyticsForcedOnViaEnv;
9
+ exports.isAnalyticsDisabledViaEnv = isAnalyticsDisabledViaEnv;
10
+ exports.isNodeDevOrTestEnv = isNodeDevOrTestEnv;
11
+ /**
12
+ * Read a process env var without crashing in browsers or in bundles where
13
+ * `process.env` is a frozen / proxied object that throws on missing keys.
14
+ */
15
+ function readEnv(name) {
16
+ try {
17
+ if (typeof process !== 'undefined' && process.env) {
18
+ return process.env[name];
19
+ }
20
+ }
21
+ catch {
22
+ // Bundlers occasionally throw on `process.env` access. Treat as unset.
23
+ }
24
+ return undefined;
25
+ }
26
+ function isTruthyEnv(value) {
27
+ if (!value)
28
+ return false;
29
+ const v = value.toLowerCase();
30
+ return v === '1' || v === 'true' || v === 'yes' || v === 'on';
31
+ }
32
+ /**
33
+ * `AUGUST_SDK_FORCE_ANALYTICS=1` bypasses the dev/test and localhost gates.
34
+ * Used by our own smoke-test script and by partners deliberately exercising
35
+ * telemetry in a non-prod environment.
36
+ */
37
+ function isAnalyticsForcedOnViaEnv() {
38
+ return isTruthyEnv(readEnv('AUGUST_SDK_FORCE_ANALYTICS'));
39
+ }
40
+ /**
41
+ * `AUGUST_SDK_DISABLE_ANALYTICS=1` is the env equivalent of passing
42
+ * `analytics: { enabled: false }`. Useful when partners can't easily plumb
43
+ * config through (CI runners, ops scripts).
44
+ */
45
+ function isAnalyticsDisabledViaEnv() {
46
+ return isTruthyEnv(readEnv('AUGUST_SDK_DISABLE_ANALYTICS'));
47
+ }
48
+ /**
49
+ * True when `NODE_ENV` is `'development'` or `'test'`. The SDK auto-disables
50
+ * analytics in these environments so partners' local dev runs and Jest suites
51
+ * don't pollute the production Sentry project.
52
+ *
53
+ * `NODE_ENV` undefined / `'production'` / `'staging'` / anything else → false.
54
+ */
55
+ function isNodeDevOrTestEnv() {
56
+ const env = readEnv('NODE_ENV');
57
+ return env === 'development' || env === 'test';
58
+ }
59
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Analytics module for SDK usage tracking via Sentry.
3
+ *
4
+ * Features:
5
+ * - User identification (API key hash, wallet, fingerprint, session)
6
+ * - Method call tracking with timing
7
+ * - Cache hit/miss rate monitoring
8
+ * - API response time tracking
9
+ * - Chain/network usage distribution
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Analytics enabled by default
14
+ * const sdk = new AugustSDK({
15
+ * providers: { 1: 'https://...' },
16
+ * keys: { august: '...' },
17
+ * });
18
+ *
19
+ * // Opt-out of analytics
20
+ * const sdk = new AugustSDK({
21
+ * providers: { 1: 'https://...' },
22
+ * keys: { august: '...' },
23
+ * analytics: { enabled: false },
24
+ * });
25
+ * ```
26
+ */
27
+ export type { IAnalyticsConfig, IUserIdentity, IMethodCallMetrics, } from './types';
28
+ export { hashApiKey, getSessionId, generateFingerprint, createUserIdentity, getUserId, } from './user-identity';
29
+ export { initializeSentry, updateUser, clearUser, isAnalyticsEnabled, getSentry, resetAnalytics, captureSdkException, } from './sentry';
30
+ export { getSentrySDK, getSentryRuntime } from './sentry-runtime';
31
+ export { readEnv, isAnalyticsDisabledViaEnv, isAnalyticsForcedOnViaEnv, isNodeDevOrTestEnv, } from './env';
32
+ export { trackApiCall, trackNetworkSwitch, getCacheStats, resetCacheStats, } from './metrics';
33
+ export { sanitizeArgs, sanitizeObject, computeArgShape } from './sanitize';
34
+ export { withMethodTracking, withSyncMethodTracking, instrumentClass, } from './instrumentation';
35
+ export { METHOD_CATEGORIES, getMethodCategory, type MethodCategory, } from './method-taxonomy';
36
+ export { chainIdToTagValue } from './chain-name';
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Analytics module for SDK usage tracking via Sentry.
4
+ *
5
+ * Features:
6
+ * - User identification (API key hash, wallet, fingerprint, session)
7
+ * - Method call tracking with timing
8
+ * - Cache hit/miss rate monitoring
9
+ * - API response time tracking
10
+ * - Chain/network usage distribution
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // Analytics enabled by default
15
+ * const sdk = new AugustSDK({
16
+ * providers: { 1: 'https://...' },
17
+ * keys: { august: '...' },
18
+ * });
19
+ *
20
+ * // Opt-out of analytics
21
+ * const sdk = new AugustSDK({
22
+ * providers: { 1: 'https://...' },
23
+ * keys: { august: '...' },
24
+ * analytics: { enabled: false },
25
+ * });
26
+ * ```
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.chainIdToTagValue = exports.getMethodCategory = exports.METHOD_CATEGORIES = exports.instrumentClass = exports.withSyncMethodTracking = exports.withMethodTracking = exports.computeArgShape = exports.sanitizeObject = exports.sanitizeArgs = exports.resetCacheStats = exports.getCacheStats = exports.trackNetworkSwitch = exports.trackApiCall = exports.isNodeDevOrTestEnv = exports.isAnalyticsForcedOnViaEnv = exports.isAnalyticsDisabledViaEnv = exports.readEnv = exports.getSentryRuntime = exports.getSentrySDK = exports.captureSdkException = exports.resetAnalytics = exports.getSentry = exports.isAnalyticsEnabled = exports.clearUser = exports.updateUser = exports.initializeSentry = exports.getUserId = exports.createUserIdentity = exports.generateFingerprint = exports.getSessionId = exports.hashApiKey = void 0;
30
+ // User identity utilities
31
+ var user_identity_1 = require("./user-identity");
32
+ Object.defineProperty(exports, "hashApiKey", { enumerable: true, get: function () { return user_identity_1.hashApiKey; } });
33
+ Object.defineProperty(exports, "getSessionId", { enumerable: true, get: function () { return user_identity_1.getSessionId; } });
34
+ Object.defineProperty(exports, "generateFingerprint", { enumerable: true, get: function () { return user_identity_1.generateFingerprint; } });
35
+ Object.defineProperty(exports, "createUserIdentity", { enumerable: true, get: function () { return user_identity_1.createUserIdentity; } });
36
+ Object.defineProperty(exports, "getUserId", { enumerable: true, get: function () { return user_identity_1.getUserId; } });
37
+ // Sentry core
38
+ var sentry_1 = require("./sentry");
39
+ Object.defineProperty(exports, "initializeSentry", { enumerable: true, get: function () { return sentry_1.initializeSentry; } });
40
+ Object.defineProperty(exports, "updateUser", { enumerable: true, get: function () { return sentry_1.updateUser; } });
41
+ Object.defineProperty(exports, "clearUser", { enumerable: true, get: function () { return sentry_1.clearUser; } });
42
+ Object.defineProperty(exports, "isAnalyticsEnabled", { enumerable: true, get: function () { return sentry_1.isAnalyticsEnabled; } });
43
+ Object.defineProperty(exports, "getSentry", { enumerable: true, get: function () { return sentry_1.getSentry; } });
44
+ Object.defineProperty(exports, "resetAnalytics", { enumerable: true, get: function () { return sentry_1.resetAnalytics; } });
45
+ Object.defineProperty(exports, "captureSdkException", { enumerable: true, get: function () { return sentry_1.captureSdkException; } });
46
+ // Isomorphic Sentry runtime resolver
47
+ var sentry_runtime_1 = require("./sentry-runtime");
48
+ Object.defineProperty(exports, "getSentrySDK", { enumerable: true, get: function () { return sentry_runtime_1.getSentrySDK; } });
49
+ Object.defineProperty(exports, "getSentryRuntime", { enumerable: true, get: function () { return sentry_runtime_1.getSentryRuntime; } });
50
+ // Env-variable gates
51
+ var env_1 = require("./env");
52
+ Object.defineProperty(exports, "readEnv", { enumerable: true, get: function () { return env_1.readEnv; } });
53
+ Object.defineProperty(exports, "isAnalyticsDisabledViaEnv", { enumerable: true, get: function () { return env_1.isAnalyticsDisabledViaEnv; } });
54
+ Object.defineProperty(exports, "isAnalyticsForcedOnViaEnv", { enumerable: true, get: function () { return env_1.isAnalyticsForcedOnViaEnv; } });
55
+ Object.defineProperty(exports, "isNodeDevOrTestEnv", { enumerable: true, get: function () { return env_1.isNodeDevOrTestEnv; } });
56
+ // Metrics tracking
57
+ var metrics_1 = require("./metrics");
58
+ Object.defineProperty(exports, "trackApiCall", { enumerable: true, get: function () { return metrics_1.trackApiCall; } });
59
+ Object.defineProperty(exports, "trackNetworkSwitch", { enumerable: true, get: function () { return metrics_1.trackNetworkSwitch; } });
60
+ Object.defineProperty(exports, "getCacheStats", { enumerable: true, get: function () { return metrics_1.getCacheStats; } });
61
+ Object.defineProperty(exports, "resetCacheStats", { enumerable: true, get: function () { return metrics_1.resetCacheStats; } });
62
+ // Sanitization utilities
63
+ var sanitize_1 = require("./sanitize");
64
+ Object.defineProperty(exports, "sanitizeArgs", { enumerable: true, get: function () { return sanitize_1.sanitizeArgs; } });
65
+ Object.defineProperty(exports, "sanitizeObject", { enumerable: true, get: function () { return sanitize_1.sanitizeObject; } });
66
+ Object.defineProperty(exports, "computeArgShape", { enumerable: true, get: function () { return sanitize_1.computeArgShape; } });
67
+ // Method instrumentation
68
+ var instrumentation_1 = require("./instrumentation");
69
+ Object.defineProperty(exports, "withMethodTracking", { enumerable: true, get: function () { return instrumentation_1.withMethodTracking; } });
70
+ Object.defineProperty(exports, "withSyncMethodTracking", { enumerable: true, get: function () { return instrumentation_1.withSyncMethodTracking; } });
71
+ Object.defineProperty(exports, "instrumentClass", { enumerable: true, get: function () { return instrumentation_1.instrumentClass; } });
72
+ // Method taxonomy
73
+ var method_taxonomy_1 = require("./method-taxonomy");
74
+ Object.defineProperty(exports, "METHOD_CATEGORIES", { enumerable: true, get: function () { return method_taxonomy_1.METHOD_CATEGORIES; } });
75
+ Object.defineProperty(exports, "getMethodCategory", { enumerable: true, get: function () { return method_taxonomy_1.getMethodCategory; } });
76
+ // Chain name helper
77
+ var chain_name_1 = require("./chain-name");
78
+ Object.defineProperty(exports, "chainIdToTagValue", { enumerable: true, get: function () { return chain_name_1.chainIdToTagValue; } });
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Higher-order function to wrap SDK methods with performance tracking.
3
+ * Tracks method calls, timing, chain usage, and errors.
4
+ *
5
+ * @param methodName - Name of the method being wrapped
6
+ * @param method - The original async method
7
+ * @param getChainId - Function to get current chain ID
8
+ * @returns Wrapped method with tracking
9
+ */
10
+ export declare function withMethodTracking<T extends (...args: unknown[]) => Promise<unknown>>(methodName: string, method: T, getChainId?: () => number | undefined): T;
11
+ /**
12
+ * Higher-order function to wrap synchronous SDK methods with tracking.
13
+ * Uses breadcrumbs for tracking since spans require async context.
14
+ *
15
+ * @param methodName - Name of the method being wrapped
16
+ * @param method - The original sync method
17
+ * @param getChainId - Function to get current chain ID
18
+ * @returns Wrapped method with tracking
19
+ */
20
+ export declare function withSyncMethodTracking<T extends (...args: unknown[]) => unknown>(methodName: string, method: T, getChainId?: () => number | undefined): T;
21
+ /**
22
+ * Instrument all methods on a class instance with tracking.
23
+ * This auto-wraps all public methods (both async and sync) without boilerplate.
24
+ *
25
+ * @param instance - The class instance to instrument
26
+ * @param getChainId - Function to get current chain ID
27
+ * @returns The same instance with instrumented methods
28
+ */
29
+ export declare function instrumentClass<T extends object>(instance: T, getChainId: () => number | undefined): T;