@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 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
- export { Vault, VaultReward, DripSdk, DripConfig, UserVaultBalance, UserBalance, VaultStats, AuthenticationStatus, NFTBoost, Strategy, StretchGoal, SwapInfo, VaultDepositToken, VaultType };
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 configParams = {
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,6 @@
1
+ export type DeployedMetaVault = {
2
+ address: string;
3
+ liveUntil: string;
4
+ liveFrom: string;
5
+ depositTokenId: string;
6
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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 {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dripfi/drip-sdk",
3
- "version": "1.1.20",
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": "1.0.14",
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"