@ichidao/ichi-vaults-sdk 0.0.113 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +161 -0
- package/dist/abis/types/MultiFeeDistributer.d.ts +475 -0
- package/dist/abis/types/MultiFeeDistributer.js +3 -0
- package/dist/abis/types/MultiFeeDistributer.js.map +1 -0
- package/dist/abis/types/factories/MultiFeeDistributer__factory.d.ts +451 -0
- package/dist/abis/types/factories/MultiFeeDistributer__factory.js +596 -0
- package/dist/abis/types/factories/MultiFeeDistributer__factory.js.map +1 -0
- package/dist/abis/types/factories/index.d.ts +1 -0
- package/dist/abis/types/factories/index.js +3 -1
- package/dist/abis/types/factories/index.js.map +1 -1
- package/dist/abis/types/index.d.ts +2 -0
- package/dist/abis/types/index.js +3 -1
- package/dist/abis/types/index.js.map +1 -1
- package/dist/src/__tests__/index.test.js +74 -1
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/abis/types/MultiFeeDistributer.d.ts +475 -0
- package/dist/src/abis/types/factories/MultiFeeDistributer__factory.d.ts +451 -0
- package/dist/src/abis/types/factories/index.d.ts +1 -0
- package/dist/src/abis/types/index.d.ts +2 -0
- package/dist/src/contracts/index.d.ts +2 -1
- package/dist/src/contracts/index.js +11 -1
- package/dist/src/contracts/index.js.map +1 -1
- package/dist/src/functions/claimRewards.d.ts +14 -0
- package/dist/src/functions/claimRewards.js +108 -0
- package/dist/src/functions/claimRewards.js.map +1 -0
- package/dist/src/functions/rewardInfo.d.ts +3 -0
- package/dist/src/functions/rewardInfo.js +176 -0
- package/dist/src/functions/rewardInfo.js.map +1 -0
- package/dist/src/functions/userBalances.d.ts +1 -1
- package/dist/src/functions/userBalances.js +64 -29
- package/dist/src/functions/userBalances.js.map +1 -1
- package/dist/src/functions/userRewards.d.ts +7 -0
- package/dist/src/functions/userRewards.js +132 -0
- package/dist/src/functions/userRewards.js.map +1 -0
- package/dist/src/functions/vault.d.ts +2 -1
- package/dist/src/functions/vault.js +75 -26
- package/dist/src/functions/vault.js.map +1 -1
- package/dist/src/graphql/constants.js +2 -2
- package/dist/src/graphql/constants.js.map +1 -1
- package/dist/src/graphql/queries.d.ts +14 -1
- package/dist/src/graphql/queries.js +57 -18
- package/dist/src/graphql/queries.js.map +1 -1
- package/dist/src/index.cjs.js +4 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.esm.js +4 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/src/contracts/index.d.ts +2 -1
- package/dist/src/src/functions/claimRewards.d.ts +14 -0
- package/dist/src/src/functions/rewardInfo.d.ts +3 -0
- package/dist/src/src/functions/userBalances.d.ts +1 -1
- package/dist/src/src/functions/userRewards.d.ts +7 -0
- package/dist/src/src/functions/vault.d.ts +2 -1
- package/dist/src/src/graphql/queries.d.ts +14 -1
- package/dist/src/src/index.d.ts +3 -0
- package/dist/src/src/types/index.d.ts +37 -0
- package/dist/src/src/types/vaultQueryData.d.ts +10 -1
- package/dist/src/src/utils/isVelodrome.d.ts +2 -0
- package/dist/src/src/utils/multicallUtils.d.ts +2 -0
- package/dist/src/types/index.d.ts +37 -0
- package/dist/src/types/vaultQueryData.d.ts +10 -1
- package/dist/src/utils/isVelodrome.d.ts +2 -0
- package/dist/src/utils/isVelodrome.js +11 -0
- package/dist/src/utils/isVelodrome.js.map +1 -0
- package/dist/src/utils/multicallUtils.d.ts +2 -0
- package/dist/src/utils/multicallUtils.js +19 -1
- package/dist/src/utils/multicallUtils.js.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,7 @@
|
|
1
|
+
import { JsonRpcProvider } from '@ethersproject/providers';
|
2
|
+
import { BigNumber } from 'ethers';
|
3
|
+
import { SupportedDex, UserRewards, UserRewardsBN } from '../types';
|
4
|
+
export declare function getUserRewards(accountAddress: string, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex): Promise<string>;
|
5
|
+
export declare function getUserRewards(accountAddress: string, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, raw: true): Promise<BigNumber>;
|
6
|
+
export declare function getAllUserRewards(accountAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex): Promise<UserRewards[]>;
|
7
|
+
export declare function getAllUserRewards(accountAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, raw: true): Promise<UserRewardsBN[]>;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
2
|
-
import { SupportedDex, SupportedChainId, IchiVault } from '../types';
|
2
|
+
import { SupportedDex, SupportedChainId, IchiVault, VaultWithRewards } from '../types';
|
3
3
|
import { VaultsByPoolQueryData, VaultsByTokensQueryData } from '../types/vaultQueryData';
|
4
4
|
export declare function getIchiVaultInfo(chainId: SupportedChainId, dex: SupportedDex, vaultAddress: string, jsonProvider?: JsonRpcProvider): Promise<IchiVault>;
|
5
5
|
export declare function getVaultsByTokens(chainId: SupportedChainId, dex: SupportedDex, depositTokenAddress: string, pairedTokenAddress: string): Promise<VaultsByTokensQueryData['ichiVaults']>;
|
@@ -11,3 +11,4 @@ export declare function validateVaultData(vaultAddress: string, jsonProvider: Js
|
|
11
11
|
export declare function getChainByProvider(jsonProvider: JsonRpcProvider): Promise<{
|
12
12
|
chainId: SupportedChainId;
|
13
13
|
}>;
|
14
|
+
export declare function getAllRewardVaults(chainId: SupportedChainId, dex: SupportedDex): Promise<VaultWithRewards[]>;
|
@@ -1,5 +1,15 @@
|
|
1
|
+
import { SupportedChainId, SupportedDex } from '../types';
|
1
2
|
export declare function vaultQuery(includeHoldersCount: boolean, version?: number): string;
|
2
3
|
export declare function vaultQueryAlgebra(includeHoldersCount: boolean, version?: number): string;
|
4
|
+
export declare const vaultQueryVelodrome: string;
|
5
|
+
/**
|
6
|
+
* Returns the appropriate GraphQL query for vault information based on chain and DEX configuration
|
7
|
+
*
|
8
|
+
* @param chainId - The blockchain ID
|
9
|
+
* @param dex - The decentralized exchange
|
10
|
+
* @returns The appropriate GraphQL query string
|
11
|
+
*/
|
12
|
+
export declare function getVaultQuery(chainId: SupportedChainId, dex: SupportedDex): string;
|
3
13
|
export declare function vaultByTokensQuery(version?: number): string;
|
4
14
|
export declare const vaultByPoolQuery: string;
|
5
15
|
export declare const rebalancesQuery: (lastTimestamp: string) => string;
|
@@ -17,5 +27,8 @@ export declare const allEventsNoCollectFeesQuery: (lastTimestamps: {
|
|
17
27
|
deposits?: string;
|
18
28
|
withdraws?: string;
|
19
29
|
}) => string;
|
20
|
-
export declare function
|
30
|
+
export declare function getUserBalancesQuery(chainId: SupportedChainId, dex: SupportedDex): string;
|
21
31
|
export declare const feeAprQuery: string;
|
32
|
+
export declare const rewardInfoQuery: string;
|
33
|
+
export declare const allRewardInfoQuery: string;
|
34
|
+
export declare const allRewardVaults: string;
|
package/dist/src/src/index.d.ts
CHANGED
@@ -11,4 +11,7 @@ export * from './functions/vaultTvl';
|
|
11
11
|
export * from './functions/chains';
|
12
12
|
export * from './functions/vaultPositions';
|
13
13
|
export * from './functions/getFeeAprs';
|
14
|
+
export * from './functions/rewardInfo';
|
15
|
+
export * from './functions/userRewards';
|
16
|
+
export * from './functions/claimRewards';
|
14
17
|
export * from './types/index';
|
@@ -128,14 +128,27 @@ export interface IchiVault {
|
|
128
128
|
allowTokenB: boolean;
|
129
129
|
holdersCount?: string;
|
130
130
|
fee?: string;
|
131
|
+
farmingContract?: string;
|
132
|
+
rewardToken?: string;
|
133
|
+
rewardTokenDecimals?: number;
|
134
|
+
}
|
135
|
+
export interface VaultWithRewards {
|
136
|
+
id: string;
|
137
|
+
farmingContract: {
|
138
|
+
id: string;
|
139
|
+
rewardToken: string;
|
140
|
+
rewardTokenDecimals?: number;
|
141
|
+
};
|
131
142
|
}
|
132
143
|
export type VaultShares = {
|
133
144
|
vault: {
|
134
145
|
id: string;
|
135
146
|
tokenA: string;
|
136
147
|
tokenB: string;
|
148
|
+
farmingContract?: string;
|
137
149
|
};
|
138
150
|
vaultShareBalance: string;
|
151
|
+
stakedVaultShareBalance?: string;
|
139
152
|
};
|
140
153
|
export type UserBalances = {
|
141
154
|
vaultShares: VaultShares[];
|
@@ -199,10 +212,12 @@ export type PriceChange = {
|
|
199
212
|
export type UserBalanceInVault = {
|
200
213
|
vaultAddress: string;
|
201
214
|
shares: string;
|
215
|
+
stakedShares?: string;
|
202
216
|
};
|
203
217
|
export type UserBalanceInVaultBN = {
|
204
218
|
vaultAddress: string;
|
205
219
|
shares: BigNumber;
|
220
|
+
stakedShares?: BigNumber;
|
206
221
|
};
|
207
222
|
export type VaultMetrics = {
|
208
223
|
timeInterval: number;
|
@@ -211,3 +226,25 @@ export type VaultMetrics = {
|
|
211
226
|
avgDtr: number;
|
212
227
|
feeApr: number;
|
213
228
|
};
|
229
|
+
export interface RewardInfo {
|
230
|
+
id: string;
|
231
|
+
rewardRatePerToken_1d: string;
|
232
|
+
rewardRatePerToken_3d: string;
|
233
|
+
farmingContract: {
|
234
|
+
id: string;
|
235
|
+
rewardToken: string;
|
236
|
+
rewardTokenDecimals: number;
|
237
|
+
};
|
238
|
+
}
|
239
|
+
export type UserRewards = {
|
240
|
+
vaultAddress: string;
|
241
|
+
rewardToken: string;
|
242
|
+
rewardTokenDecimals: number;
|
243
|
+
rewardAmount: string;
|
244
|
+
};
|
245
|
+
export type UserRewardsBN = {
|
246
|
+
vaultAddress: string;
|
247
|
+
rewardToken: string;
|
248
|
+
rewardTokenDecimals: number;
|
249
|
+
rewardAmount: BigNumber;
|
250
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { IchiVault, Fees, VaultTransactionEvent, UserBalances, FeeAprData } from '..';
|
1
|
+
import { IchiVault, Fees, VaultTransactionEvent, UserBalances, FeeAprData, RewardInfo, VaultWithRewards } from '..';
|
2
2
|
export interface VaultQueryData {
|
3
3
|
ichiVault: IchiVault;
|
4
4
|
}
|
@@ -26,3 +26,12 @@ export interface UserBalancesQueryData {
|
|
26
26
|
export interface FeeAprQueryResponse {
|
27
27
|
ichiVault: FeeAprData | null;
|
28
28
|
}
|
29
|
+
export interface RewardInfoQueryResponse {
|
30
|
+
ichiVault: RewardInfo;
|
31
|
+
}
|
32
|
+
export interface AllRewardInfoQueryResponse {
|
33
|
+
ichiVaults: RewardInfo[];
|
34
|
+
}
|
35
|
+
export interface AllRewardVaultsQueryResponse {
|
36
|
+
ichiVaults: VaultWithRewards[];
|
37
|
+
}
|
@@ -17,10 +17,12 @@ export declare function multicall(calls: Call[], chainId: SupportedChainId, prov
|
|
17
17
|
export declare function encodeTotalAmountsCall(vaultAddress: string): Call;
|
18
18
|
export declare function encodeTotalSupplyCall(vaultAddress: string): Call;
|
19
19
|
export declare function encodeDecimalsCall(tokenAddress: string): Call;
|
20
|
+
export declare function encodeFarmingRewardsCall(farmingContractAddress: string, userAddress: string): Call;
|
20
21
|
export declare function decodeTotalAmountsResult(result: Result, vaultAddress: string): {
|
21
22
|
total0: BigNumber;
|
22
23
|
total1: BigNumber;
|
23
24
|
};
|
24
25
|
export declare function decodeTotalSupplyResult(result: Result, vaultAddress: string): BigNumber;
|
25
26
|
export declare function decodeDecimalsResult(result: Result, tokenAddress: string): number;
|
27
|
+
export declare function decodeFarmingRewardsResult(result: Result, farmingContractAddress: string): [string[], BigNumber[]];
|
26
28
|
export {};
|
@@ -128,14 +128,27 @@ export interface IchiVault {
|
|
128
128
|
allowTokenB: boolean;
|
129
129
|
holdersCount?: string;
|
130
130
|
fee?: string;
|
131
|
+
farmingContract?: string;
|
132
|
+
rewardToken?: string;
|
133
|
+
rewardTokenDecimals?: number;
|
134
|
+
}
|
135
|
+
export interface VaultWithRewards {
|
136
|
+
id: string;
|
137
|
+
farmingContract: {
|
138
|
+
id: string;
|
139
|
+
rewardToken: string;
|
140
|
+
rewardTokenDecimals?: number;
|
141
|
+
};
|
131
142
|
}
|
132
143
|
export type VaultShares = {
|
133
144
|
vault: {
|
134
145
|
id: string;
|
135
146
|
tokenA: string;
|
136
147
|
tokenB: string;
|
148
|
+
farmingContract?: string;
|
137
149
|
};
|
138
150
|
vaultShareBalance: string;
|
151
|
+
stakedVaultShareBalance?: string;
|
139
152
|
};
|
140
153
|
export type UserBalances = {
|
141
154
|
vaultShares: VaultShares[];
|
@@ -199,10 +212,12 @@ export type PriceChange = {
|
|
199
212
|
export type UserBalanceInVault = {
|
200
213
|
vaultAddress: string;
|
201
214
|
shares: string;
|
215
|
+
stakedShares?: string;
|
202
216
|
};
|
203
217
|
export type UserBalanceInVaultBN = {
|
204
218
|
vaultAddress: string;
|
205
219
|
shares: BigNumber;
|
220
|
+
stakedShares?: BigNumber;
|
206
221
|
};
|
207
222
|
export type VaultMetrics = {
|
208
223
|
timeInterval: number;
|
@@ -211,3 +226,25 @@ export type VaultMetrics = {
|
|
211
226
|
avgDtr: number;
|
212
227
|
feeApr: number;
|
213
228
|
};
|
229
|
+
export interface RewardInfo {
|
230
|
+
id: string;
|
231
|
+
rewardRatePerToken_1d: string;
|
232
|
+
rewardRatePerToken_3d: string;
|
233
|
+
farmingContract: {
|
234
|
+
id: string;
|
235
|
+
rewardToken: string;
|
236
|
+
rewardTokenDecimals: number;
|
237
|
+
};
|
238
|
+
}
|
239
|
+
export type UserRewards = {
|
240
|
+
vaultAddress: string;
|
241
|
+
rewardToken: string;
|
242
|
+
rewardTokenDecimals: number;
|
243
|
+
rewardAmount: string;
|
244
|
+
};
|
245
|
+
export type UserRewardsBN = {
|
246
|
+
vaultAddress: string;
|
247
|
+
rewardToken: string;
|
248
|
+
rewardTokenDecimals: number;
|
249
|
+
rewardAmount: BigNumber;
|
250
|
+
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { IchiVault, Fees, VaultTransactionEvent, UserBalances, FeeAprData } from '..';
|
1
|
+
import { IchiVault, Fees, VaultTransactionEvent, UserBalances, FeeAprData, RewardInfo, VaultWithRewards } from '..';
|
2
2
|
export interface VaultQueryData {
|
3
3
|
ichiVault: IchiVault;
|
4
4
|
}
|
@@ -26,3 +26,12 @@ export interface UserBalancesQueryData {
|
|
26
26
|
export interface FeeAprQueryResponse {
|
27
27
|
ichiVault: FeeAprData | null;
|
28
28
|
}
|
29
|
+
export interface RewardInfoQueryResponse {
|
30
|
+
ichiVault: RewardInfo;
|
31
|
+
}
|
32
|
+
export interface AllRewardInfoQueryResponse {
|
33
|
+
ichiVaults: RewardInfo[];
|
34
|
+
}
|
35
|
+
export interface AllRewardVaultsQueryResponse {
|
36
|
+
ichiVaults: VaultWithRewards[];
|
37
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isVelodromeDex = void 0;
|
4
|
+
var addresses_1 = require("./config/addresses");
|
5
|
+
function isVelodromeDex(chainId, dex) {
|
6
|
+
var _a, _b;
|
7
|
+
var ammVersion = (_b = (_a = addresses_1.addressConfig[chainId]) === null || _a === void 0 ? void 0 : _a[dex]) === null || _b === void 0 ? void 0 : _b.ammVersion;
|
8
|
+
return ammVersion === addresses_1.AMM_VERSIONS.VELODROME;
|
9
|
+
}
|
10
|
+
exports.isVelodromeDex = isVelodromeDex;
|
11
|
+
//# sourceMappingURL=isVelodrome.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"isVelodrome.js","sourceRoot":"","sources":["../../../src/utils/isVelodrome.ts"],"names":[],"mappings":";;;AAEA,gDAAiE;AAEjE,SAAgB,cAAc,CAAC,OAAyB,EAAE,GAAiB;;IACzE,IAAM,UAAU,GAAG,MAAA,MAAA,yBAAa,CAAC,OAAO,CAAC,0CAAG,GAAG,CAAC,0CAAE,UAAU,CAAC;IAC7D,OAAO,UAAU,KAAK,wBAAY,CAAC,SAAS,CAAC;AAC/C,CAAC;AAHD,wCAGC"}
|
@@ -17,10 +17,12 @@ export declare function multicall(calls: Call[], chainId: SupportedChainId, prov
|
|
17
17
|
export declare function encodeTotalAmountsCall(vaultAddress: string): Call;
|
18
18
|
export declare function encodeTotalSupplyCall(vaultAddress: string): Call;
|
19
19
|
export declare function encodeDecimalsCall(tokenAddress: string): Call;
|
20
|
+
export declare function encodeFarmingRewardsCall(farmingContractAddress: string, userAddress: string): Call;
|
20
21
|
export declare function decodeTotalAmountsResult(result: Result, vaultAddress: string): {
|
21
22
|
total0: BigNumber;
|
22
23
|
total1: BigNumber;
|
23
24
|
};
|
24
25
|
export declare function decodeTotalSupplyResult(result: Result, vaultAddress: string): BigNumber;
|
25
26
|
export declare function decodeDecimalsResult(result: Result, tokenAddress: string): number;
|
27
|
+
export declare function decodeFarmingRewardsResult(result: Result, farmingContractAddress: string): [string[], BigNumber[]];
|
26
28
|
export {};
|
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
40
|
};
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
-
exports.decodeDecimalsResult = exports.decodeTotalSupplyResult = exports.decodeTotalAmountsResult = exports.encodeDecimalsCall = exports.encodeTotalSupplyCall = exports.encodeTotalAmountsCall = exports.multicall = exports.getMulticallContract = void 0;
|
42
|
+
exports.decodeFarmingRewardsResult = exports.decodeDecimalsResult = exports.decodeTotalSupplyResult = exports.decodeTotalAmountsResult = exports.encodeFarmingRewardsCall = exports.encodeDecimalsCall = exports.encodeTotalSupplyCall = exports.encodeTotalAmountsCall = exports.multicall = exports.getMulticallContract = void 0;
|
43
43
|
var contracts_1 = require("@ethersproject/contracts");
|
44
44
|
var abi_1 = require("@ethersproject/abi");
|
45
45
|
var addresses_1 = require("./config/addresses");
|
@@ -96,6 +96,15 @@ function encodeDecimalsCall(tokenAddress) {
|
|
96
96
|
};
|
97
97
|
}
|
98
98
|
exports.encodeDecimalsCall = encodeDecimalsCall;
|
99
|
+
function encodeFarmingRewardsCall(farmingContractAddress, userAddress) {
|
100
|
+
var farmingInterface = new abi_1.Interface((0, contracts_2.getMultiFeeDistributorContract)(farmingContractAddress, null).interface.format());
|
101
|
+
return {
|
102
|
+
target: farmingContractAddress,
|
103
|
+
gasLimit: 1000000,
|
104
|
+
callData: farmingInterface.encodeFunctionData('claimableRewards', [userAddress]),
|
105
|
+
};
|
106
|
+
}
|
107
|
+
exports.encodeFarmingRewardsCall = encodeFarmingRewardsCall;
|
99
108
|
function decodeTotalAmountsResult(result, vaultAddress) {
|
100
109
|
if (!result.success) {
|
101
110
|
throw new Error('Failed to get total amounts');
|
@@ -124,4 +133,13 @@ function decodeDecimalsResult(result, tokenAddress) {
|
|
124
133
|
return tokenInterface.decodeFunctionResult('decimals', result.returnData)[0];
|
125
134
|
}
|
126
135
|
exports.decodeDecimalsResult = decodeDecimalsResult;
|
136
|
+
function decodeFarmingRewardsResult(result, farmingContractAddress) {
|
137
|
+
if (!result.success) {
|
138
|
+
throw new Error('Failed to get farming rewards');
|
139
|
+
}
|
140
|
+
var farmingInterface = new abi_1.Interface((0, contracts_2.getMultiFeeDistributorContract)(farmingContractAddress, null).interface.format());
|
141
|
+
var decoded = farmingInterface.decodeFunctionResult('claimableRewards', result.returnData);
|
142
|
+
return [decoded[0], decoded[1]]; // [token addresses array, amounts array]
|
143
|
+
}
|
144
|
+
exports.decodeFarmingRewardsResult = decodeFarmingRewardsResult;
|
127
145
|
//# sourceMappingURL=multicallUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"multicallUtils.js","sourceRoot":"","sources":["../../../src/utils/multicallUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAoD;AACpD,0CAA+C;AAG/C,gDAAyD;AACzD,
|
1
|
+
{"version":3,"file":"multicallUtils.js","sourceRoot":"","sources":["../../../src/utils/multicallUtils.ts"],"names":[],"mappings":"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"}
|