curvance 3.6.0 → 3.6.2

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 (88) hide show
  1. package/dist/chains/arbitrum.d.ts +3 -0
  2. package/dist/chains/arbitrum.d.ts.map +1 -0
  3. package/dist/chains/arbitrum.js +16 -0
  4. package/dist/chains/arbitrum.js.map +1 -0
  5. package/dist/chains/index.d.ts +21 -568
  6. package/dist/chains/index.d.ts.map +1 -1
  7. package/dist/chains/index.js +6 -12
  8. package/dist/chains/index.js.map +1 -1
  9. package/dist/chains/monad.d.ts +3 -0
  10. package/dist/chains/monad.d.ts.map +1 -0
  11. package/dist/chains/monad.js +21 -0
  12. package/dist/chains/monad.js.map +1 -0
  13. package/dist/classes/BorrowableCToken.d.ts +0 -4
  14. package/dist/classes/BorrowableCToken.d.ts.map +1 -1
  15. package/dist/classes/BorrowableCToken.js +0 -6
  16. package/dist/classes/BorrowableCToken.js.map +1 -1
  17. package/dist/classes/CToken.d.ts +11 -1
  18. package/dist/classes/CToken.d.ts.map +1 -1
  19. package/dist/classes/CToken.js +20 -4
  20. package/dist/classes/CToken.js.map +1 -1
  21. package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
  22. package/dist/classes/DexAggregators/KyberSwap.js +8 -6
  23. package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
  24. package/dist/classes/Market.d.ts.map +1 -1
  25. package/dist/classes/Market.js +16 -3
  26. package/dist/classes/Market.js.map +1 -1
  27. package/dist/classes/NativeToken.d.ts.map +1 -1
  28. package/dist/classes/NativeToken.js +2 -1
  29. package/dist/classes/NativeToken.js.map +1 -1
  30. package/dist/classes/index.d.ts +15 -0
  31. package/dist/classes/index.d.ts.map +1 -0
  32. package/dist/classes/index.js +31 -0
  33. package/dist/classes/index.js.map +1 -0
  34. package/dist/contracts/arb-sepolia.json +44 -0
  35. package/dist/contracts/index.d.ts +267 -0
  36. package/dist/contracts/index.d.ts.map +1 -0
  37. package/dist/contracts/index.js +13 -0
  38. package/dist/contracts/index.js.map +1 -0
  39. package/dist/contracts/monad-mainnet.json +220 -0
  40. package/dist/format/amounts.d.ts +18 -0
  41. package/dist/format/amounts.d.ts.map +1 -0
  42. package/dist/format/amounts.js +75 -0
  43. package/dist/format/amounts.js.map +1 -0
  44. package/dist/format/borrow.d.ts +15 -0
  45. package/dist/format/borrow.d.ts.map +1 -0
  46. package/dist/format/borrow.js +38 -0
  47. package/dist/format/borrow.js.map +1 -0
  48. package/dist/format/collateral.d.ts +10 -0
  49. package/dist/format/collateral.d.ts.map +1 -0
  50. package/dist/format/collateral.js +28 -0
  51. package/dist/format/collateral.js.map +1 -0
  52. package/dist/format/health.d.ts +10 -0
  53. package/dist/format/health.d.ts.map +1 -0
  54. package/dist/format/health.js +50 -0
  55. package/dist/format/health.js.map +1 -0
  56. package/dist/format/index.d.ts +6 -0
  57. package/dist/format/index.d.ts.map +1 -0
  58. package/dist/format/index.js +22 -0
  59. package/dist/format/index.js.map +1 -0
  60. package/dist/format/leverage.d.ts +40 -0
  61. package/dist/format/leverage.d.ts.map +1 -0
  62. package/dist/format/leverage.js +130 -0
  63. package/dist/format/leverage.js.map +1 -0
  64. package/dist/helpers.d.ts +59 -133
  65. package/dist/helpers.d.ts.map +1 -1
  66. package/dist/helpers.js +83 -15
  67. package/dist/helpers.js.map +1 -1
  68. package/dist/index.d.ts +5 -16
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +5 -16
  71. package/dist/index.js.map +1 -1
  72. package/dist/integrations/index.d.ts +3 -0
  73. package/dist/integrations/index.d.ts.map +1 -0
  74. package/dist/integrations/index.js +19 -0
  75. package/dist/integrations/index.js.map +1 -0
  76. package/dist/integrations/merkl.d.ts +98 -0
  77. package/dist/integrations/merkl.d.ts.map +1 -0
  78. package/dist/integrations/merkl.js +37 -0
  79. package/dist/integrations/merkl.js.map +1 -0
  80. package/dist/integrations/snapshot.d.ts +53 -0
  81. package/dist/integrations/snapshot.d.ts.map +1 -0
  82. package/dist/integrations/snapshot.js +103 -0
  83. package/dist/integrations/snapshot.js.map +1 -0
  84. package/dist/setup.d.ts +1 -59
  85. package/dist/setup.d.ts.map +1 -1
  86. package/dist/setup.js +5 -48
  87. package/dist/setup.js.map +1 -1
  88. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ export type MerklChainInfo = {
2
+ id: number;
3
+ name: string;
4
+ icon?: string;
5
+ explorer?: {
6
+ url: string;
7
+ }[];
8
+ liveCampaigns?: number;
9
+ endOfDisputePeriod?: number;
10
+ };
11
+ export type MerklRewardToken = {
12
+ id?: string;
13
+ name?: string;
14
+ symbol: string;
15
+ address: string;
16
+ chainId: number;
17
+ decimals: number;
18
+ icon?: string;
19
+ price?: number;
20
+ priceSource?: string;
21
+ };
22
+ export type MerklRewardBreakdown = {
23
+ campaignId: string;
24
+ amount: string;
25
+ claimed: string;
26
+ pending?: string;
27
+ reason?: string;
28
+ };
29
+ export type MerklRewardRecordToken = Partial<MerklRewardToken>;
30
+ export type MerklRewardRecordBreakdown = {
31
+ token: MerklRewardRecordToken;
32
+ amount?: string;
33
+ value?: number;
34
+ distributionType?: string;
35
+ onChainCampaignId?: string;
36
+ id?: string;
37
+ timestamp?: string;
38
+ campaignId?: string;
39
+ dailyRewardsRecordId?: string;
40
+ };
41
+ export type MerklReward = {
42
+ distributionChainId: number;
43
+ root: string;
44
+ recipient: string;
45
+ amount: string;
46
+ claimed: string;
47
+ pending?: string;
48
+ token: MerklRewardToken;
49
+ breakdowns?: MerklRewardBreakdown[];
50
+ };
51
+ export type MerklUserRewardsResponse = Array<{
52
+ chain: MerklChainInfo;
53
+ rewards: MerklReward[];
54
+ }>;
55
+ export type MerklCampaign = {
56
+ id: string;
57
+ campaignId: string;
58
+ computeChainId: number;
59
+ distributionChainId: number;
60
+ chain: MerklChainInfo;
61
+ distributionChain?: MerklChainInfo;
62
+ rewardToken: MerklRewardToken;
63
+ };
64
+ type FetchOptions = {
65
+ signal?: AbortSignal;
66
+ };
67
+ export type MerklOpportunity = {
68
+ name: string;
69
+ apr: number;
70
+ action?: 'LEND' | 'BORROW' | string;
71
+ identifier: string;
72
+ type: string;
73
+ tokens: {
74
+ address: string;
75
+ symbol: string;
76
+ }[];
77
+ rewardsRecord?: {
78
+ id?: string;
79
+ total?: number;
80
+ timestamp?: string;
81
+ breakdowns?: MerklRewardRecordBreakdown[];
82
+ };
83
+ };
84
+ type FetchRewardsParams = FetchOptions & {
85
+ wallet: string;
86
+ chainId: number;
87
+ };
88
+ export declare function fetchMerklUserRewards({ wallet, chainId, signal, }: FetchRewardsParams): Promise<MerklUserRewardsResponse>;
89
+ type FetchCampaignsParams = FetchOptions & {
90
+ tokenSymbol: string;
91
+ };
92
+ export declare function fetchMerklCampaignsBySymbol({ tokenSymbol, signal, }: FetchCampaignsParams): Promise<MerklCampaign[]>;
93
+ type FetchOpportunitiesParams = FetchOptions & {
94
+ action?: 'LEND' | 'BORROW';
95
+ };
96
+ export declare function fetchMerklOpportunities({ signal, action, }: FetchOpportunitiesParams): Promise<MerklOpportunity[]>;
97
+ export {};
98
+ //# sourceMappingURL=merkl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkl.d.ts","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchMerklUserRewards = fetchMerklUserRewards;
4
+ exports.fetchMerklCampaignsBySymbol = fetchMerklCampaignsBySymbol;
5
+ exports.fetchMerklOpportunities = fetchMerklOpportunities;
6
+ const MERKL_API_BASE_URL = 'https://api.merkl.xyz/v4';
7
+ const PROTOCOL_ID = 'curvance';
8
+ async function fetchMerklUserRewards({ wallet, chainId, signal, }) {
9
+ const url = new URL(`${MERKL_API_BASE_URL}/users/${wallet}/rewards?chainId=${chainId}`);
10
+ const response = await fetch(url.toString(), { signal: signal ?? null, cache: 'no-store' });
11
+ if (!response.ok) {
12
+ throw new Error('Failed to fetch Merkl rewards');
13
+ }
14
+ return (await response.json());
15
+ }
16
+ async function fetchMerklCampaignsBySymbol({ tokenSymbol, signal, }) {
17
+ const url = new URL(`${MERKL_API_BASE_URL}/campaigns`);
18
+ url.searchParams.set('tokenSymbol', tokenSymbol);
19
+ const response = await fetch(url.toString(), { signal: signal ?? null, cache: 'no-store' });
20
+ if (!response.ok) {
21
+ throw new Error('Failed to fetch Merkl campaigns');
22
+ }
23
+ return (await response.json());
24
+ }
25
+ async function fetchMerklOpportunities({ signal, action, }) {
26
+ const url = new URL(`${MERKL_API_BASE_URL}/opportunities?items=100&tokenTypes=TOKEN`);
27
+ url.searchParams.set('mainProtocolId', PROTOCOL_ID);
28
+ if (action) {
29
+ url.searchParams.set('action', action);
30
+ }
31
+ const response = await fetch(url.toString(), { signal: signal ?? null, cache: 'no-store' });
32
+ if (!response.ok) {
33
+ throw new Error('Failed to fetch Merkl opportunities');
34
+ }
35
+ return (await response.json());
36
+ }
37
+ //# sourceMappingURL=merkl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkl.js","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":";;AAgGA,sDAcC;AAMD,kEAcC;AAMD,0DAiBC;AAzJD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AACtD,MAAM,WAAW,GAAG,UAAU,CAAC;AA+FxB,KAAK,UAAU,qBAAqB,CAAC,EACxC,MAAM,EACN,OAAO,EACP,MAAM,GACW;IACjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,kBAAkB,UAAU,MAAM,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAExF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;AAC/D,CAAC;AAMM,KAAK,UAAU,2BAA2B,CAAC,EAC9C,WAAW,EACX,MAAM,GACa;IACnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,kBAAkB,YAAY,CAAC,CAAC;IACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;AACtD,CAAC;AAMM,KAAK,UAAU,uBAAuB,CAAC,EAC1C,MAAM,EACN,MAAM,GACiB;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,kBAAkB,2CAA2C,CAAC,CAAC;IACtF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACT,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;AACzD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { Market } from "../classes/Market";
2
+ import { address } from "../types";
3
+ export interface PositionSnapshot {
4
+ tokenAddress: string;
5
+ tokenSymbol: string;
6
+ isBorrowable: boolean;
7
+ depositUSD: number;
8
+ depositTokens: number;
9
+ collateralUSD: number;
10
+ collateralTokens: number;
11
+ debtUSD: number;
12
+ debtTokens: number;
13
+ assetPriceUSD: number;
14
+ supplyAPY: number;
15
+ borrowRate: number;
16
+ }
17
+ export interface MarketSnapshot {
18
+ marketAddress: string;
19
+ marketName: string;
20
+ totalDepositsUSD: number;
21
+ totalDebtUSD: number;
22
+ netUSD: number;
23
+ positionHealth: number | null;
24
+ dailyEarnings: number;
25
+ dailyCost: number;
26
+ positions: PositionSnapshot[];
27
+ }
28
+ export interface PortfolioSnapshot {
29
+ account: string;
30
+ chain: string;
31
+ timestamp: number;
32
+ totalDepositsUSD: number;
33
+ totalDebtUSD: number;
34
+ netUSD: number;
35
+ dailyEarnings: number;
36
+ dailyCost: number;
37
+ markets: MarketSnapshot[];
38
+ }
39
+ /**
40
+ * Snapshot a single market's user positions into plain numbers for JSON serialization.
41
+ */
42
+ export declare function snapshotMarket(market: Market): MarketSnapshot;
43
+ /**
44
+ * Take a full portfolio snapshot across all markets.
45
+ *
46
+ * @param account - Wallet address to snapshot
47
+ * @param options.refresh - When true, reloads on-chain market + user data before reading cache.
48
+ * Use this for indexer/cron jobs that need fresh data.
49
+ */
50
+ export declare function takePortfolioSnapshot(account: address, options?: {
51
+ refresh?: boolean;
52
+ }): Promise<PortfolioSnapshot>;
53
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/integrations/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC7B;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAqC7D;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAsD5B"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.snapshotMarket = snapshotMarket;
4
+ exports.takePortfolioSnapshot = takePortfolioSnapshot;
5
+ const setup_1 = require("../setup");
6
+ // ── Functions ────────────────────────────────────────────────────────────────
7
+ /**
8
+ * Snapshot a single market's user positions into plain numbers for JSON serialization.
9
+ */
10
+ function snapshotMarket(market) {
11
+ const positions = [];
12
+ for (const token of market.tokens) {
13
+ const isBorrowable = token.isBorrowable;
14
+ positions.push({
15
+ tokenAddress: token.address,
16
+ tokenSymbol: token.symbol,
17
+ isBorrowable,
18
+ depositUSD: token.getUserAssetBalance(true).toNumber(),
19
+ depositTokens: token.getUserAssetBalance(false).toNumber(),
20
+ collateralUSD: token.getUserCollateral(true).toNumber(),
21
+ collateralTokens: token.getUserCollateral(false).toNumber(),
22
+ debtUSD: token.getUserDebt(true).toNumber(),
23
+ debtTokens: token.getUserDebt(false).toNumber(),
24
+ assetPriceUSD: token.getPrice(true).toNumber(),
25
+ supplyAPY: token.getApy().toNumber(),
26
+ borrowRate: isBorrowable
27
+ ? token.getBorrowRate(true).toNumber()
28
+ : 0,
29
+ });
30
+ }
31
+ const health = market.positionHealth;
32
+ return {
33
+ marketAddress: market.address,
34
+ marketName: market.name,
35
+ totalDepositsUSD: market.userDeposits.toNumber(),
36
+ totalDebtUSD: market.userDebt.toNumber(),
37
+ netUSD: market.userNet.toNumber(),
38
+ positionHealth: health !== null ? health.toNumber() : null,
39
+ dailyEarnings: market.getUserDepositsChange("day").toNumber(),
40
+ dailyCost: market.getUserDebtChange("day").toNumber(),
41
+ positions,
42
+ };
43
+ }
44
+ /**
45
+ * Take a full portfolio snapshot across all markets.
46
+ *
47
+ * @param account - Wallet address to snapshot
48
+ * @param options.refresh - When true, reloads on-chain market + user data before reading cache.
49
+ * Use this for indexer/cron jobs that need fresh data.
50
+ */
51
+ async function takePortfolioSnapshot(account, options) {
52
+ if (options?.refresh && setup_1.all_markets.length > 0) {
53
+ // Fetch all dynamic + user data in 2 RPC calls (not 2×N).
54
+ // Each market's reload fetches ALL markets then filters — so we call
55
+ // once via the shared reader and distribute results ourselves.
56
+ const reader = setup_1.all_markets[0].reader;
57
+ const [dynamicData, userData] = await Promise.all([
58
+ reader.getDynamicMarketData(),
59
+ reader.getUserData(account),
60
+ ]);
61
+ for (const market of setup_1.all_markets) {
62
+ const dynamic = dynamicData.find((m) => m.address === market.address);
63
+ const user = userData.markets.find((m) => m.address === market.address);
64
+ if (!dynamic || !user)
65
+ continue;
66
+ market.cache.dynamic = dynamic;
67
+ market.cache.user = user;
68
+ for (const token of market.tokens) {
69
+ const dynToken = dynamic.tokens.find((t) => t.address === token.address);
70
+ const usrToken = user.tokens.find((t) => t.address === token.address);
71
+ if (dynToken)
72
+ token.cache = { ...token.cache, ...dynToken };
73
+ if (usrToken)
74
+ token.cache = { ...token.cache, ...usrToken };
75
+ }
76
+ }
77
+ }
78
+ const marketSnapshots = [];
79
+ let totalDepositsUSD = 0;
80
+ let totalDebtUSD = 0;
81
+ let dailyEarnings = 0;
82
+ let dailyCost = 0;
83
+ for (const market of setup_1.all_markets) {
84
+ const snap = snapshotMarket(market);
85
+ marketSnapshots.push(snap);
86
+ totalDepositsUSD += snap.totalDepositsUSD;
87
+ totalDebtUSD += snap.totalDebtUSD;
88
+ dailyEarnings += snap.dailyEarnings;
89
+ dailyCost += snap.dailyCost;
90
+ }
91
+ return {
92
+ account,
93
+ chain: setup_1.setup_config.chain,
94
+ timestamp: Date.now(),
95
+ totalDepositsUSD,
96
+ totalDebtUSD,
97
+ netUSD: totalDepositsUSD - totalDebtUSD,
98
+ dailyEarnings,
99
+ dailyCost,
100
+ markets: marketSnapshots,
101
+ };
102
+ }
103
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/integrations/snapshot.ts"],"names":[],"mappings":";;AAmDA,wCAqCC;AASD,sDAyDC;AAxJD,oCAAqD;AA4CrD,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAc;IACzC,MAAM,SAAS,GAAuB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAExC,SAAS,CAAC,IAAI,CAAC;YACX,YAAY,EAAE,KAAK,CAAC,OAAO;YAC3B,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,YAAY;YACZ,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACtD,aAAa,EAAE,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;YAC1D,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACvD,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;YAC3D,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC3C,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;YAC/C,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC9C,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,UAAU,EAAE,YAAY;gBACpB,CAAC,CAAE,KAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAC5D,CAAC,CAAC,CAAC;SACV,CAAC,CAAC;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;IAErC,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,OAAO;QAC7B,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAChD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACxC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;QAC1D,aAAa,EAAE,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QAC7D,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QACrD,SAAS;KACZ,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CACvC,OAAgB,EAChB,OAA+B;IAE/B,IAAI,OAAO,EAAE,OAAO,IAAI,mBAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,0DAA0D;QAC1D,qEAAqE;QACrE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,mBAAW,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QACtC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,MAAM,CAAC,oBAAoB,EAAE;YAC7B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,mBAAW,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEhC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtE,IAAI,QAAQ;oBAAE,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC5D,IAAI,QAAQ;oBAAE,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;YAChE,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,MAAM,IAAI,mBAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAC1C,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC;QAClC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QACpC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,OAAO;QACH,OAAO;QACP,KAAK,EAAE,oBAAY,CAAC,KAAK;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,gBAAgB;QAChB,YAAY;QACZ,MAAM,EAAE,gBAAgB,GAAG,YAAY;QACvC,aAAa;QACb,SAAS;QACT,OAAO,EAAE,eAAe;KAC3B,CAAC;AACN,CAAC"}
package/dist/setup.d.ts CHANGED
@@ -1,10 +1,7 @@
1
- import { JsonRpcProvider } from "ethers";
2
1
  import { ChainRpcPrefix, getContractAddresses } from "./helpers";
3
2
  import { Market } from "./classes/Market";
4
3
  import { address, curvance_provider } from './types';
5
4
  import { ProtocolReader } from "./classes/ProtocolReader";
6
- import { Kuru } from "./classes/DexAggregators/Kuru";
7
- import { KyberSwap } from "./classes/DexAggregators";
8
5
  export type IncentiveResponse = {
9
6
  market: address;
10
7
  type: string;
@@ -36,65 +33,10 @@ export declare let setup_config: {
36
33
  api_url: string | null;
37
34
  };
38
35
  export declare let all_markets: Market[];
39
- export declare const chain_config: {
40
- 'monad-testnet': {
41
- dexAgg: Kuru;
42
- provider: JsonRpcProvider;
43
- native_symbol: string;
44
- native_name: string;
45
- wrapped_native: address;
46
- native_vaults: {
47
- name: string;
48
- contract: address;
49
- }[];
50
- vaults: never[];
51
- };
52
- 'monad-mainnet': {
53
- dexAgg: KyberSwap;
54
- provider: JsonRpcProvider;
55
- native_symbol: string;
56
- native_name: string;
57
- wrapped_native: address;
58
- native_vaults: {
59
- name: string;
60
- contract: address;
61
- }[];
62
- vaults: {
63
- name: string;
64
- contract: address;
65
- underlying: address;
66
- }[];
67
- };
68
- 'arb-sepolia': {
69
- dexAgg: KyberSwap;
70
- provider: JsonRpcProvider;
71
- native_symbol: string;
72
- native_name: string;
73
- wrapped_native: address;
74
- native_vaults: never[];
75
- vaults: never[];
76
- };
77
- 'local-monad-mainnet': {
78
- provider: JsonRpcProvider;
79
- dexAgg: KyberSwap;
80
- native_symbol: string;
81
- native_name: string;
82
- wrapped_native: address;
83
- native_vaults: {
84
- name: string;
85
- contract: address;
86
- }[];
87
- vaults: {
88
- name: string;
89
- contract: address;
90
- underlying: address;
91
- }[];
92
- };
93
- };
94
36
  export declare function setupChain(chain: ChainRpcPrefix, provider?: curvance_provider | null, approval_protection?: boolean, api_url?: string): Promise<{
95
37
  markets: Market[];
96
38
  reader: ProtocolReader;
97
- dexAgg: Kuru | KyberSwap;
39
+ dexAgg: import("./classes/DexAggregators/IDexAgg").default;
98
40
  global_milestone: MilestoneResponse | null;
99
41
  }>;
100
42
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAyB,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAA;AACD,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAEtE,eAAO,IAAI,YAAY,EAAE;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;AAiBtC,eAAO,MAAM,YAAY;;;;;;wBAW+C,OAAO;;;sBAES,OAAO;;;;;;;;;wBAvB3B,OAAO;;;sBAES,OAAO;;;;sBAIR,OAAO;wBAA8D,OAAO;;;;;;;;wBA8BvF,OAAO;;;;;;;;;wBApCX,OAAO;;;sBAES,OAAO;;;;sBAIR,OAAO;wBAA8D,OAAO;;;CAmC9J,CAAC;AAEF,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,GAAE,iBAAiB,GAAG,IAAW,EAAE,mBAAmB,GAAE,OAAe,EAAE,OAAO,GAAE,MAAwC;;;;;GAoEzL"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK1D,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAA;AACD,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAEtE,eAAO,IAAI,YAAY,EAAE;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACnD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,IAAI,WAAW,EAAE,MAAM,EAAO,CAAC;AAEtC,wBAAsB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,GAAE,iBAAiB,GAAG,IAAW,EAAE,mBAAmB,GAAE,OAAe,EAAE,OAAO,GAAE,MAAwC;;;;;GAoEzL"}
package/dist/setup.js CHANGED
@@ -1,63 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.chain_config = exports.all_markets = exports.setup_config = void 0;
3
+ exports.all_markets = exports.setup_config = void 0;
4
4
  exports.setupChain = setupChain;
5
- const ethers_1 = require("ethers");
6
5
  const helpers_1 = require("./helpers");
7
6
  const Market_1 = require("./classes/Market");
8
7
  const ProtocolReader_1 = require("./classes/ProtocolReader");
9
8
  const OracleManager_1 = require("./classes/OracleManager");
10
9
  const retry_provider_1 = require("./retry-provider");
11
- const Kuru_1 = require("./classes/DexAggregators/Kuru");
12
- const DexAggregators_1 = require("./classes/DexAggregators");
10
+ const chains_1 = require("./chains");
13
11
  exports.all_markets = [];
14
- const monad_mainnet_config = {
15
- dexAgg: new DexAggregators_1.KyberSwap(),
16
- provider: new ethers_1.JsonRpcProvider("https://rpc-mainnet.monadinfra.com/rpc/yXdhejk7tio3mpBmpTyzQCdIQjDXsuAk"),
17
- native_symbol: 'MON',
18
- native_name: 'Monad',
19
- wrapped_native: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A",
20
- native_vaults: [
21
- { name: "aprMON", contract: "0x0c65A0BC65a5D819235B71F554D210D3F80E0852" },
22
- { name: "shMON", contract: "0x1B68626dCa36c7fE922fD2d55E4f631d962dE19c" },
23
- ],
24
- vaults: [
25
- { name: "sAUSD", contract: "0xD793c04B87386A6bb84ee61D98e0065FdE7fdA5E", underlying: "0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a" }
26
- ]
27
- };
28
- exports.chain_config = {
29
- 'monad-testnet': {
30
- dexAgg: new Kuru_1.Kuru("0x0Acb7eF4D8733C719d60e0992B489b629bc55C02", 1, "0x96eaC98928437496DdD0Cd2080E54Fe78BaC99b6", "https://ws.staging.kuru.io/api"),
31
- provider: new ethers_1.JsonRpcProvider("https://rpc.ankr.com/monad_testnet"),
32
- native_symbol: 'MON',
33
- native_name: 'Monad',
34
- wrapped_native: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
35
- native_vaults: [
36
- { name: "aprMON", contract: "0xb2f82D0f38dc453D596Ad40A37799446Cc89274A" },
37
- { name: "shMON", contract: "0x3a98250F98Dd388C211206983453837C8365BDc1" },
38
- // { name: "magma", contract: "0xaEef2f6B429Cb59C9B2D7bB2141ADa993E8571c3" as address }, //Has no deposit function for some reason
39
- // { name: "kintsu", contract: "0xe1d2439b75fb9746E7Bc6cB777Ae10AA7f7ef9c5" as address } //Has a deposit function but uses uint96 instead of uint256
40
- ],
41
- vaults: []
42
- },
43
- 'monad-mainnet': monad_mainnet_config,
44
- 'arb-sepolia': {
45
- dexAgg: new DexAggregators_1.KyberSwap(),
46
- provider: new ethers_1.JsonRpcProvider("https://arbitrum-sepolia-testnet.api.pocket.network"),
47
- native_symbol: 'ETH',
48
- native_name: 'Ether',
49
- wrapped_native: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
50
- native_vaults: [],
51
- vaults: []
52
- },
53
- 'local-monad-mainnet': { ...monad_mainnet_config, provider: new ethers_1.JsonRpcProvider("http://localhost:8545") } //overwrite with mainnet
54
- };
55
12
  async function setupChain(chain, provider = null, approval_protection = false, api_url = "https://api.floppy-backup.com") {
56
- if (!(chain in exports.chain_config)) {
13
+ if (!(chain in chains_1.chain_config)) {
57
14
  throw new Error("Chain does not have a corresponding config");
58
15
  }
59
16
  if (provider == null) {
60
- provider = exports.chain_config[chain].provider;
17
+ provider = chains_1.chain_config[chain].provider;
61
18
  }
62
19
  provider = (0, retry_provider_1.wrapProviderWithRetries)(provider);
63
20
  exports.setup_config = {
@@ -104,7 +61,7 @@ async function setupChain(chain, provider = null, approval_protection = false, a
104
61
  return {
105
62
  markets: exports.all_markets,
106
63
  reader,
107
- dexAgg: exports.chain_config[chain].dexAgg,
64
+ dexAgg: chains_1.chain_config[chain].dexAgg,
108
65
  global_milestone: milestones['global'] ?? null
109
66
  };
110
67
  }
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "curvance",
3
- "version": "3.6.0",
3
+ "version": "3.6.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [