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.
- package/dist/chains/arbitrum.d.ts +3 -0
- package/dist/chains/arbitrum.d.ts.map +1 -0
- package/dist/chains/arbitrum.js +16 -0
- package/dist/chains/arbitrum.js.map +1 -0
- package/dist/chains/index.d.ts +21 -568
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/index.js +6 -12
- package/dist/chains/index.js.map +1 -1
- package/dist/chains/monad.d.ts +3 -0
- package/dist/chains/monad.d.ts.map +1 -0
- package/dist/chains/monad.js +21 -0
- package/dist/chains/monad.js.map +1 -0
- package/dist/classes/BorrowableCToken.d.ts +0 -4
- package/dist/classes/BorrowableCToken.d.ts.map +1 -1
- package/dist/classes/BorrowableCToken.js +0 -6
- package/dist/classes/BorrowableCToken.js.map +1 -1
- package/dist/classes/CToken.d.ts +11 -1
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +20 -4
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.js +8 -6
- package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +16 -3
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/NativeToken.d.ts.map +1 -1
- package/dist/classes/NativeToken.js +2 -1
- package/dist/classes/NativeToken.js.map +1 -1
- package/dist/classes/index.d.ts +15 -0
- package/dist/classes/index.d.ts.map +1 -0
- package/dist/classes/index.js +31 -0
- package/dist/classes/index.js.map +1 -0
- package/dist/contracts/arb-sepolia.json +44 -0
- package/dist/contracts/index.d.ts +267 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +13 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/monad-mainnet.json +220 -0
- package/dist/format/amounts.d.ts +18 -0
- package/dist/format/amounts.d.ts.map +1 -0
- package/dist/format/amounts.js +75 -0
- package/dist/format/amounts.js.map +1 -0
- package/dist/format/borrow.d.ts +15 -0
- package/dist/format/borrow.d.ts.map +1 -0
- package/dist/format/borrow.js +38 -0
- package/dist/format/borrow.js.map +1 -0
- package/dist/format/collateral.d.ts +10 -0
- package/dist/format/collateral.d.ts.map +1 -0
- package/dist/format/collateral.js +28 -0
- package/dist/format/collateral.js.map +1 -0
- package/dist/format/health.d.ts +10 -0
- package/dist/format/health.d.ts.map +1 -0
- package/dist/format/health.js +50 -0
- package/dist/format/health.js.map +1 -0
- package/dist/format/index.d.ts +6 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +22 -0
- package/dist/format/index.js.map +1 -0
- package/dist/format/leverage.d.ts +40 -0
- package/dist/format/leverage.d.ts.map +1 -0
- package/dist/format/leverage.js +130 -0
- package/dist/format/leverage.js.map +1 -0
- package/dist/helpers.d.ts +59 -133
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +83 -15
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +5 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -16
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +3 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +19 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/merkl.d.ts +98 -0
- package/dist/integrations/merkl.d.ts.map +1 -0
- package/dist/integrations/merkl.js +37 -0
- package/dist/integrations/merkl.js.map +1 -0
- package/dist/integrations/snapshot.d.ts +53 -0
- package/dist/integrations/snapshot.d.ts.map +1 -0
- package/dist/integrations/snapshot.js +103 -0
- package/dist/integrations/snapshot.js.map +1 -0
- package/dist/setup.d.ts +1 -59
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +5 -48
- package/dist/setup.js.map +1 -1
- 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":"AAGA,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/D,MAAM,MAAM,0BAA0B,GAAG;IACrC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,WAAW,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,0BAA0B,EAAE,CAAC;KAC7C,CAAC;CACL,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,EACxC,MAAM,EACN,OAAO,EACP,MAAM,GACT,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAUxD;AAED,KAAK,oBAAoB,GAAG,YAAY,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAC9C,WAAW,EACX,MAAM,GACT,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAWjD;AAED,KAAK,wBAAwB,GAAG,YAAY,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,EAC1C,MAAM,EACN,MAAM,GACT,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAcxD"}
|
|
@@ -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":"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"}
|
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:
|
|
39
|
+
dexAgg: import("./classes/DexAggregators/IDexAgg").default;
|
|
98
40
|
global_milestone: MilestoneResponse | null;
|
|
99
41
|
}>;
|
|
100
42
|
//# sourceMappingURL=setup.d.ts.map
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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.
|
|
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
|
|
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
|
|
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 =
|
|
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:
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|