@dripfi/drip-sdk 1.1.20 → 1.1.21-dev
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/DripApi.d.ts +3 -0
- package/dist/DripApi.js +24 -0
- package/dist/DripSdk.d.ts +5 -0
- package/dist/DripSdk.js +40 -0
- package/dist/index.d.ts +2 -1
- package/dist/test.js +21 -1
- package/dist/types/DeployedMetaVault.d.ts +6 -0
- package/dist/types/DeployedMetaVault.js +2 -0
- package/dist/types/MetaVault.d.ts +15 -0
- package/dist/types/MetaVault.js +2 -0
- package/package.json +2 -2
package/dist/DripApi.d.ts
CHANGED
@@ -6,17 +6,20 @@ import { UserRewards } from './types/UserRewards';
|
|
6
6
|
import { VaultStats } from './types/VaultStats';
|
7
7
|
import { UserBalance } from './types/UserBalance';
|
8
8
|
import { VaultClaimData } from './types/VaultClaimData';
|
9
|
+
import { MetaVault } from './types/MetaVault';
|
9
10
|
export declare const IMPERSONATOR_HEADER = "impersonatorAddress";
|
10
11
|
export default class DripApi {
|
11
12
|
route: string;
|
12
13
|
constructor(route: string);
|
13
14
|
fetchAllVaults(): Promise<Vault[]>;
|
15
|
+
fetchAllMetaVaults(): Promise<MetaVault[]>;
|
14
16
|
fetchTokenPrice(tokenName: string): Promise<number>;
|
15
17
|
getExpectedSwapResult(fromTokenAddress: string, toTokenAddress: string, amount: string, decimals: number, token: string): Promise<string>;
|
16
18
|
getUserBalance(walletAddress: string, token: string, headers?: Headers): Promise<UserBalance>;
|
17
19
|
getUserBoostedNfts(walletAddress: string, vaultAddress: string, token: string, headers?: Headers): Promise<string[]>;
|
18
20
|
fetchVaultStats(): Promise<VaultStats>;
|
19
21
|
fetchVaultDetails(vaultAddress: string): Promise<Vault>;
|
22
|
+
fetchMetaVaultDetails(metaVaultAddress: string): Promise<MetaVault>;
|
20
23
|
fetchRewardsPerHour(vaultAddress: string, token: string): Promise<number>;
|
21
24
|
getSwapInfo(fromTokenAddress: string, toTokenAddress: string, amount: BigNumber, fromAddress: string): Promise<SwapInfo[]>;
|
22
25
|
fetchUserSVTBalance(vaultAddress: string, walletAddress: string, token: string): Promise<BigNumber>;
|
package/dist/DripApi.js
CHANGED
@@ -31,6 +31,18 @@ class DripApi {
|
|
31
31
|
}
|
32
32
|
});
|
33
33
|
}
|
34
|
+
fetchAllMetaVaults() {
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
36
|
+
const res = yield fetch(`${this.route}/api-be/api/metavault`);
|
37
|
+
if (res.ok) {
|
38
|
+
const data = (yield res.json());
|
39
|
+
return data;
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
throw Error(`${yield res.text()}`);
|
43
|
+
}
|
44
|
+
});
|
45
|
+
}
|
34
46
|
fetchTokenPrice(tokenName) {
|
35
47
|
return __awaiter(this, void 0, void 0, function* () {
|
36
48
|
const res = yield fetch(`${this.route}/api-be/api/tokenPrice?tokenName=${tokenName}`);
|
@@ -127,6 +139,18 @@ class DripApi {
|
|
127
139
|
}
|
128
140
|
});
|
129
141
|
}
|
142
|
+
fetchMetaVaultDetails(metaVaultAddress) {
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
144
|
+
const res = yield fetch(`${this.route}/api-be/api/metavault/${metaVaultAddress}`);
|
145
|
+
if (res.ok) {
|
146
|
+
const data = (yield res.json());
|
147
|
+
return data;
|
148
|
+
}
|
149
|
+
else {
|
150
|
+
throw Error(`${yield res.text()}`);
|
151
|
+
}
|
152
|
+
});
|
153
|
+
}
|
130
154
|
fetchRewardsPerHour(vaultAddress, token) {
|
131
155
|
return __awaiter(this, void 0, void 0, function* () {
|
132
156
|
const headers = new Headers();
|
package/dist/DripSdk.d.ts
CHANGED
@@ -8,6 +8,7 @@ import { UserVaultBalance } from './types/UserVaultBalance';
|
|
8
8
|
import { VaultClaimData } from './types/VaultClaimData';
|
9
9
|
import { Vault } from './types/Vault';
|
10
10
|
import { LoyaltyCard } from './types/LoyaltyCard';
|
11
|
+
import { MetaVault } from './types/MetaVault';
|
11
12
|
export default class DripSdk {
|
12
13
|
private dripApi;
|
13
14
|
private dripTokenContract;
|
@@ -17,6 +18,7 @@ export default class DripSdk {
|
|
17
18
|
private dripConfig;
|
18
19
|
constructor(dripConfig: DripConfig, signer?: Signer);
|
19
20
|
getAllVaults(): Promise<Vault[]>;
|
21
|
+
getAllMetaVaults(): Promise<MetaVault[]>;
|
20
22
|
getVaultDetails(vaultAddress: string): Promise<Vault>;
|
21
23
|
getVaultStats(): Promise<VaultStats>;
|
22
24
|
getTokenPrice(tokenName: string): Promise<number>;
|
@@ -25,6 +27,7 @@ export default class DripSdk {
|
|
25
27
|
authenticate(): Promise<boolean>;
|
26
28
|
newDeposit(tokenAddress: string, vaultAddress: string, amount: string): Promise<string>;
|
27
29
|
deposit(tokenAddress: string, vaultAddress: string, amount: string): Promise<string>;
|
30
|
+
depositMetaVault(metaVaultAddress: string, amount: string): Promise<string>;
|
28
31
|
private doDeposit;
|
29
32
|
getTokenAllowanceForCurrency(tokenAddress: string): Promise<string>;
|
30
33
|
getExpectedSwapResult(fromTokenAddress: string, toTokenAddress: string, amount: string, decimals: number): Promise<string>;
|
@@ -38,6 +41,7 @@ export default class DripSdk {
|
|
38
41
|
newSwapAndDeposit(fromTokenAddress: string, toTokenAddress: string, fromTokenAmount: string, vaultAddress: string, ethAmount?: string): Promise<string>;
|
39
42
|
private doSwapAndDeposit;
|
40
43
|
withdraw(vaultAddress: string, amountToWithdraw?: string): Promise<string>;
|
44
|
+
withdrawMetavault(metaVaultAddress: string): Promise<string>;
|
41
45
|
claimWithdraws(vaultAddress: string): Promise<string>;
|
42
46
|
getVaultsClaimableData(headers?: Headers): Promise<VaultClaimData>;
|
43
47
|
getBeansBalance(headers?: Headers): Promise<{
|
@@ -51,6 +55,7 @@ export default class DripSdk {
|
|
51
55
|
approveTokenForRecycler(tokenAddress: string, amount: string): Promise<string>;
|
52
56
|
approveTokenForSwapAndDeposit(tokenAddress: string, amount: string): Promise<string>;
|
53
57
|
approveTokenForDeposit(tokenAddress: string, amount: string): Promise<string>;
|
58
|
+
approveTokenForMetaVaultDeposit(tokenAddress: string, metaVaultAddress: string, amount: string): Promise<string>;
|
54
59
|
private generateRedeemBagStruct;
|
55
60
|
private getAllSvts;
|
56
61
|
private getERC20Precission;
|
package/dist/DripSdk.js
CHANGED
@@ -36,6 +36,11 @@ class DripSdk {
|
|
36
36
|
return this.dripApi.fetchAllVaults();
|
37
37
|
});
|
38
38
|
}
|
39
|
+
getAllMetaVaults() {
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
41
|
+
return this.dripApi.fetchAllMetaVaults();
|
42
|
+
});
|
43
|
+
}
|
39
44
|
getVaultDetails(vaultAddress) {
|
40
45
|
return __awaiter(this, void 0, void 0, function* () {
|
41
46
|
return this.dripApi.fetchVaultDetails(vaultAddress);
|
@@ -116,6 +121,23 @@ class DripSdk {
|
|
116
121
|
return this.doDeposit(tokenAddress, vaultAddress, amount, true);
|
117
122
|
});
|
118
123
|
}
|
124
|
+
depositMetaVault(metaVaultAddress, amount) {
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
126
|
+
if (!this.signer) {
|
127
|
+
throw Error('No signer provided');
|
128
|
+
}
|
129
|
+
const metavault = yield this.dripApi.fetchMetaVaultDetails(metaVaultAddress);
|
130
|
+
if (!metavault) {
|
131
|
+
throw Error('Metavault not found');
|
132
|
+
}
|
133
|
+
const decimals = yield this.getERC20Precission(metavault.depositToken.tokenAddress);
|
134
|
+
const amountWithDecimals = parseFloat(parseFloat(amount).toFixed(decimals));
|
135
|
+
const amountToDeposit = ethers_1.ethers.utils.parseUnits(amountWithDecimals.toString(), decimals);
|
136
|
+
const depositTx = yield this.spoolSdk.metaVaultDeposit(metaVaultAddress, amountToDeposit);
|
137
|
+
const txReceipt = yield depositTx.wait();
|
138
|
+
return txReceipt.transactionHash;
|
139
|
+
});
|
140
|
+
}
|
119
141
|
doDeposit(tokenAddress, vaultAddress, amount, checkAllowance) {
|
120
142
|
return __awaiter(this, void 0, void 0, function* () {
|
121
143
|
if (!this.signer) {
|
@@ -297,6 +319,16 @@ class DripSdk {
|
|
297
319
|
return redeemTxReceipt.transactionHash;
|
298
320
|
});
|
299
321
|
}
|
322
|
+
withdrawMetavault(metaVaultAddress) {
|
323
|
+
return __awaiter(this, void 0, void 0, function* () {
|
324
|
+
if (!this.signer) {
|
325
|
+
throw Error('No signer provided');
|
326
|
+
}
|
327
|
+
const depositTx = yield this.spoolSdk.metaVaultWithdraw(metaVaultAddress, []);
|
328
|
+
const txReceipt = yield depositTx.wait();
|
329
|
+
return txReceipt.transactionHash;
|
330
|
+
});
|
331
|
+
}
|
300
332
|
claimWithdraws(vaultAddress) {
|
301
333
|
return __awaiter(this, void 0, void 0, function* () {
|
302
334
|
const userAddress = yield this.signer.getAddress();
|
@@ -420,6 +452,14 @@ class DripSdk {
|
|
420
452
|
return yield this.approveToken(tokenAddress, amount, smartVaultManagerAddress);
|
421
453
|
});
|
422
454
|
}
|
455
|
+
approveTokenForMetaVaultDeposit(tokenAddress, metaVaultAddress, amount) {
|
456
|
+
return __awaiter(this, void 0, void 0, function* () {
|
457
|
+
if (!this.signer) {
|
458
|
+
throw Error('No signer provided');
|
459
|
+
}
|
460
|
+
return yield this.approveToken(tokenAddress, amount, metaVaultAddress);
|
461
|
+
});
|
462
|
+
}
|
423
463
|
generateRedeemBagStruct(token, vault, signerAddress, amountToWithdraw) {
|
424
464
|
return __awaiter(this, void 0, void 0, function* () {
|
425
465
|
const decimals = yield this.getERC20Precission(vault.depositToken.tokenAddress.toLowerCase());
|
package/dist/index.d.ts
CHANGED
@@ -12,4 +12,5 @@ import { UserVaultBalance } from './types/UserVaultBalance';
|
|
12
12
|
import { UserBalance } from './types/UserBalance';
|
13
13
|
import { VaultStats } from './types/VaultStats';
|
14
14
|
import { DripConfig } from './DripConfig';
|
15
|
-
|
15
|
+
import { MetaVault } from './types/MetaVault';
|
16
|
+
export { Vault, VaultReward, DripSdk, DripConfig, UserVaultBalance, UserBalance, VaultStats, AuthenticationStatus, NFTBoost, Strategy, StretchGoal, SwapInfo, VaultDepositToken, VaultType, MetaVault };
|
package/dist/test.js
CHANGED
@@ -34,6 +34,7 @@ const testConfigParams = {
|
|
34
34
|
IRewardManager: '0xcE7F66BD505a80129Ef25b06207Ac49620A55522',
|
35
35
|
IStrategyRegistry: '0xf978853Db777d00b1130Ea21d8d98E8710b0Bc56',
|
36
36
|
ISpoolLens: '0x33Df6cf08Fbb10047e318989fE687294CD45A7B4',
|
37
|
+
IMetaVaultFactory: '0x28a3a4f4D469Fb33601639Db40a800ca6776A3d0',
|
37
38
|
}
|
38
39
|
},
|
39
40
|
dripContracts: {
|
@@ -41,7 +42,7 @@ const testConfigParams = {
|
|
41
42
|
DripTokenRecyclerAddress: '0xe943A1320402fcf41cDc04275e842654165dAB78' // Sepolia contract address
|
42
43
|
}
|
43
44
|
};
|
44
|
-
const
|
45
|
+
const sepoliaConfigParams = {
|
45
46
|
subgraphUrl: 'https://subgraph.satsuma-prod.com/49eb322da234/solidant/spool-v2-sepolia/api',
|
46
47
|
priceFeedApiUrl: 'https://pricefeed.dev.spool.fi/',
|
47
48
|
rewardsUrl: 'https://rewards.dev.spool.fi/sepolia',
|
@@ -55,6 +56,7 @@ const configParams = {
|
|
55
56
|
IRewardManager: '0xcE7F66BD505a80129Ef25b06207Ac49620A55522',
|
56
57
|
IStrategyRegistry: '0xf978853Db777d00b1130Ea21d8d98E8710b0Bc56',
|
57
58
|
ISpoolLens: '0x33Df6cf08Fbb10047e318989fE687294CD45A7B4',
|
59
|
+
IMetaVaultFactory: '0xe07a896CFD8FEdFb6d7515480853c5D5ED30EBFE',
|
58
60
|
},
|
59
61
|
},
|
60
62
|
dripContracts: {
|
@@ -62,6 +64,24 @@ const configParams = {
|
|
62
64
|
DripTokenRecyclerAddress: '0xe943A1320402fcf41cDc04275e842654165dAB78' // Sepolia contract address
|
63
65
|
}
|
64
66
|
};
|
67
|
+
const mainnetConfigParams = {
|
68
|
+
subgraphUrl: 'https://subgraph.satsuma-prod.com/49eb322da234/solidant/spool-v2/api',
|
69
|
+
priceFeedApiUrl: 'https://pricefeed.v2.spool.fi/',
|
70
|
+
rewardsUrl: 'https://rewards.v2.spool.fi/',
|
71
|
+
fastRedeemApi: 'https://fastwithdraw.v2.spool.fi/',
|
72
|
+
contracts: {
|
73
|
+
1: {
|
74
|
+
ISmartVaultManager: '0x23Daf34e2b9Af02A74dC19cB52Af727B19403874',
|
75
|
+
IDepositSwap: '0xd8534197Bd587F8226d12E0C864ef2CaE6f82f5C',
|
76
|
+
ISmartVaultFactory: '0x362599Cdc123e3FFEB7c0812d769128D180667E8',
|
77
|
+
IDepositManager: '0x823Ba38992825FF37E72B6c3D669a09173B8F7bf',
|
78
|
+
IRewardManager: '0xd8d2C1C3C7982272e3e12dEC5aF681433fdcf003',
|
79
|
+
IStrategyRegistry: '0x554c6bCB54656390aca0a0af38CA954dbE653F15',
|
80
|
+
ISpoolLens: '0x8aa6174333F75421903b2B5c70DdF8DA5D84f74F',
|
81
|
+
IMetaVaultFactory: '0x28a3a4f4D469Fb33601639Db40a800ca6776A3d0'
|
82
|
+
},
|
83
|
+
}
|
84
|
+
};
|
65
85
|
const provider = new ethers_1.ethers.providers.StaticJsonRpcProvider('https://rpc.ankr.com/eth_sepolia', 11155111);
|
66
86
|
exports.signer = new ethers_1.ethers.Wallet(privKey, provider);
|
67
87
|
// const random_address = '0x25dFcFB061956c6f33B1ee032cc33837d0b83257';
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { VaultDepositToken } from './VaultDepositToken';
|
2
|
+
type VaultAllocation = {
|
3
|
+
vaultAddress: string;
|
4
|
+
vaultName: string;
|
5
|
+
allocation: number;
|
6
|
+
};
|
7
|
+
export type MetaVault = {
|
8
|
+
name: string;
|
9
|
+
address: string;
|
10
|
+
depositToken: VaultDepositToken;
|
11
|
+
liveUntil: string;
|
12
|
+
liveFrom: string;
|
13
|
+
allocations: VaultAllocation[];
|
14
|
+
};
|
15
|
+
export {};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dripfi/drip-sdk",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.21-dev",
|
4
4
|
"description": "Drip SDK",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -11,7 +11,7 @@
|
|
11
11
|
"test": "echo \"Error: no test specified\" && exit 1"
|
12
12
|
},
|
13
13
|
"dependencies": {
|
14
|
-
"@spool.fi/spool-v2-sdk": "
|
14
|
+
"@spool.fi/spool-v2-sdk": "2.0.13",
|
15
15
|
"ethers": "^5.7.2",
|
16
16
|
"js-cookie": "^3.0.5",
|
17
17
|
"web3-token": "^1.0.6"
|