@dripfi/drip-sdk 1.4.28 → 1.4.30-avalanche

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 (65) hide show
  1. package/README.md +128 -24
  2. package/dist/PerqApi.d.ts +2 -0
  3. package/dist/PerqApi.js +33 -0
  4. package/dist/PerqSdk.d.ts +9 -2
  5. package/dist/PerqSdk.js +15 -1
  6. package/dist/abi/SlotBurnTokenAbi.json +130 -0
  7. package/dist/abi/index.d.ts +336 -0
  8. package/dist/abi/index.js +10 -4
  9. package/dist/abi/perq/BridgeMainnetPerqToSonicAbi.json +598 -0
  10. package/dist/abi/perq/BridgeSonicPerqToMainnetAbi.json +733 -0
  11. package/dist/constants.d.ts +2 -0
  12. package/dist/constants.js +5 -0
  13. package/dist/contracts/{BasePerqContract.d.ts → BaseContract.d.ts} +1 -1
  14. package/dist/contracts/{BasePerqContract.js → BaseContract.js} +2 -2
  15. package/dist/contracts/BridgeMainnetPerqToSonicContract.d.ts +9 -0
  16. package/dist/contracts/BridgeMainnetPerqToSonicContract.js +48 -0
  17. package/dist/contracts/BridgeSonicPerqToMainnetContract.d.ts +9 -0
  18. package/dist/contracts/BridgeSonicPerqToMainnetContract.js +47 -0
  19. package/dist/contracts/SlotBurnTokenContract.d.ts +8 -0
  20. package/dist/contracts/SlotBurnTokenContract.js +26 -0
  21. package/dist/contracts/index.d.ts +9 -6
  22. package/dist/contracts/index.js +13 -7
  23. package/dist/contracts/{PerqSwapAndRecyclerContract.d.ts → perq/PerqSwapAndRecyclerContract.d.ts} +3 -3
  24. package/dist/contracts/{PerqSwapAndRecyclerContract.js → perq/PerqSwapAndRecyclerContract.js} +3 -3
  25. package/dist/contracts/{PerqTokenContract.d.ts → perq/PerqTokenContract.d.ts} +2 -2
  26. package/dist/contracts/{PerqTokenContract.js → perq/PerqTokenContract.js} +3 -3
  27. package/dist/contracts/{PerqTokenRecyclerContract.d.ts → perq/PerqTokenRecyclerContract.d.ts} +3 -3
  28. package/dist/contracts/{PerqTokenRecyclerContract.js → perq/PerqTokenRecyclerContract.js} +3 -3
  29. package/dist/contracts/{PerqVestingContract.d.ts → perq/PerqVestingContract.d.ts} +3 -3
  30. package/dist/contracts/{PerqVestingContract.js → perq/PerqVestingContract.js} +3 -3
  31. package/dist/subpackages/BridgePerqPackage.d.ts +36 -0
  32. package/dist/subpackages/BridgePerqPackage.js +205 -0
  33. package/dist/subpackages/LoyaltyCardsPackage.d.ts +6 -0
  34. package/dist/subpackages/LoyaltyCardsPackage.js +75 -0
  35. package/dist/subpackages/SiloPackage.d.ts +18 -0
  36. package/dist/subpackages/SiloPackage.js +112 -0
  37. package/dist/subpackages/SiloVaultOperations.d.ts +31 -0
  38. package/dist/subpackages/SiloVaultOperations.js +138 -0
  39. package/dist/subpackages/TokenUtilsPackage.d.ts +14 -0
  40. package/dist/subpackages/TokenUtilsPackage.js +31 -4
  41. package/dist/subpackages/VaultHandlerPackage.d.ts +54 -0
  42. package/dist/subpackages/VaultHandlerPackage.js +107 -0
  43. package/dist/subpackages/YelayVaultOperations.d.ts +13 -0
  44. package/dist/subpackages/YelayVaultOperations.js +164 -0
  45. package/dist/types/BridgePerq.d.ts +14 -0
  46. package/dist/types/BridgePerq.js +2 -0
  47. package/dist/types/ChainId.d.ts +2 -1
  48. package/dist/types/ChainId.js +2 -1
  49. package/dist/types/DeployedProject.d.ts +1 -0
  50. package/dist/types/LoyaltyCard.d.ts +2 -0
  51. package/dist/types/PerqConfig.d.ts +3 -0
  52. package/dist/types/PerqConfig.js +6 -0
  53. package/dist/types/SdkType.d.ts +2 -0
  54. package/dist/types/SdkType.js +2 -0
  55. package/dist/types/SlotMachineSpinCost.d.ts +7 -0
  56. package/dist/types/SlotMachineSpinCost.js +2 -0
  57. package/dist/types/VaultData.d.ts +2 -0
  58. package/dist/types/VaultOperationParams.d.ts +12 -0
  59. package/dist/types/VaultOperationParams.js +2 -0
  60. package/dist/types/index.d.ts +2 -1
  61. package/package.json +3 -2
  62. /package/dist/abi/{PerqSwapAndRecyclerAbi.json → perq/PerqSwapAndRecyclerAbi.json} +0 -0
  63. /package/dist/abi/{PerqTokenAbi.json → perq/PerqTokenAbi.json} +0 -0
  64. /package/dist/abi/{PerqVestingAbi.json → perq/PerqVestingAbi.json} +0 -0
  65. /package/dist/abi/{TokenRecyclerAbi.json → perq/TokenRecyclerAbi.json} +0 -0
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YelayVaultOperations = void 0;
4
+ const ethers_1 = require("ethers");
5
+ class YelayVaultOperations {
6
+ perqSdk;
7
+ constructor(perqSdk) {
8
+ this.perqSdk = perqSdk;
9
+ }
10
+ async getAllowance(params) {
11
+ const { sourceTokenAddress, vaultAddress, onChainProjectId, amount } = params;
12
+ console.log(`🚀 ~ yelay getAllowance with these params: `, {
13
+ sourceTokenAddress,
14
+ vaultAddress,
15
+ onChainProjectId,
16
+ amount,
17
+ });
18
+ if (!onChainProjectId || onChainProjectId === -1) {
19
+ throw new Error('OnChainProjectId is required for Yelay vaults');
20
+ }
21
+ const depositType = this.determineDepositType(params);
22
+ console.log('🚀 ~ depositType: ', depositType);
23
+ try {
24
+ let allowance;
25
+ switch (depositType) {
26
+ case 'direct': {
27
+ allowance = await this.perqSdk.tokenUtils.getERC20TokenAllowance(vaultAddress, sourceTokenAddress);
28
+ console.log('🚀 ~ direct deposit allowance: ', allowance);
29
+ break;
30
+ }
31
+ case 'swap': {
32
+ const allowanceString = await this.perqSdk.lite.getSwapAndDepositAllowance(sourceTokenAddress);
33
+ allowance = ethers_1.BigNumber.from(allowanceString);
34
+ console.log('🚀 ~ swapAndDeposit allowance: ', allowance);
35
+ break;
36
+ }
37
+ case 'wrap': {
38
+ return true;
39
+ }
40
+ default:
41
+ throw new Error(`Unsupported deposit type: ${depositType}`);
42
+ }
43
+ // Get required amount with correct decimals
44
+ const requiredAmount = await this.perqSdk.tokenUtils.parseAmountWithDecimals(amount, sourceTokenAddress);
45
+ return allowance.gte(requiredAmount);
46
+ }
47
+ catch (error) {
48
+ console.error('Error checking allowance:', error);
49
+ return false;
50
+ }
51
+ }
52
+ async approveAllowance(params) {
53
+ const { sourceTokenAddress, vaultAddress, amount, onChainProjectId } = params;
54
+ console.log(`🚀 ~ yelay approveAllowance called with these params:`, {
55
+ sourceTokenAddress,
56
+ vaultAddress,
57
+ amount,
58
+ onChainProjectId,
59
+ });
60
+ if (!onChainProjectId || onChainProjectId === -1) {
61
+ throw new Error('OnChainProjectId is required for Yelay vaults');
62
+ }
63
+ const depositType = this.determineDepositType(params);
64
+ switch (depositType) {
65
+ case 'direct':
66
+ return await this.perqSdk.tokenUtils.approveAllowance(sourceTokenAddress, amount, vaultAddress);
67
+ case 'wrap':
68
+ throw new Error("Can't approve a native token");
69
+ case 'swap':
70
+ return await this.perqSdk.lite.approveSwapAndDeposit(sourceTokenAddress, amount);
71
+ default:
72
+ throw new Error(`Unsupported deposit type: ${depositType}`);
73
+ }
74
+ }
75
+ async deposit(params) {
76
+ const { sourceTokenAddress, vaultTokenAddress, vaultAddress, amount, onChainProjectId } = params;
77
+ console.log(`🚀 ~ yelay deposit called with these params: `, {
78
+ sourceTokenAddress,
79
+ vaultTokenAddress,
80
+ vaultAddress,
81
+ amount,
82
+ onChainProjectId,
83
+ });
84
+ if (!onChainProjectId || onChainProjectId === -1) {
85
+ throw new Error('OnChainProjectId is required for Yelay vaults');
86
+ }
87
+ const depositType = this.determineDepositType(params);
88
+ switch (depositType) {
89
+ case 'direct':
90
+ console.log('🚀 ~ this.perqSdk.lite.deposit called', {
91
+ sourceTokenAddress,
92
+ vaultAddress,
93
+ onChainProjectId,
94
+ amount,
95
+ });
96
+ return await this.perqSdk.lite.deposit(sourceTokenAddress, vaultAddress, onChainProjectId, amount);
97
+ case 'wrap':
98
+ console.log('🚀 ~ this.perqSdk.lite.wrapAndDepositEth called', {
99
+ vaultAddress,
100
+ onChainProjectId,
101
+ amount,
102
+ });
103
+ return await this.perqSdk.lite.wrapAndDepositEth(vaultAddress, onChainProjectId, amount);
104
+ case 'swap':
105
+ console.log('🚀 ~ this.perqSdk.lite.swapAndDeposit called', {
106
+ sourceTokenAddress,
107
+ vaultTokenAddress,
108
+ amount,
109
+ vaultAddress,
110
+ onChainProjectId,
111
+ });
112
+ return await this.perqSdk.lite.swapAndDeposit(sourceTokenAddress, vaultTokenAddress, amount, vaultAddress, onChainProjectId);
113
+ default:
114
+ throw new Error(`Unsupported deposit type: ${depositType}`);
115
+ }
116
+ }
117
+ async withdraw(params) {
118
+ const { amount, tokenAddress, vaultAddress, onChainProjectId } = params;
119
+ console.log(`🚀 ~ yelay withdraw called with these params:`, {
120
+ amount,
121
+ tokenAddress,
122
+ vaultAddress,
123
+ onChainProjectId,
124
+ });
125
+ if (!onChainProjectId || onChainProjectId === -1) {
126
+ throw new Error('OnChainProjectId is required for Yelay vaults');
127
+ }
128
+ console.log('🚀 ~ this.perqSdk.lite.withdraw called', {
129
+ tokenAddress,
130
+ vaultAddress,
131
+ onChainProjectId,
132
+ amount,
133
+ });
134
+ return await this.perqSdk.lite.withdraw(tokenAddress, vaultAddress, onChainProjectId, amount);
135
+ }
136
+ async getBalance(vaultAddress, _, onChainProjectId) {
137
+ console.log('🚀 ~ this.perqSdk.pools.getUserPoolBalance called with: ', {
138
+ vaultAddress,
139
+ onChainProjectId,
140
+ });
141
+ const balance = await this.perqSdk.pools.getUserPoolBalance(vaultAddress, onChainProjectId);
142
+ console.log('🚀 ~ balance: ', balance);
143
+ return balance;
144
+ }
145
+ determineDepositType(params) {
146
+ const { sourceTokenSymbol, vaultTokenSymbol } = params;
147
+ if (!sourceTokenSymbol || !vaultTokenSymbol) {
148
+ return 'direct';
149
+ }
150
+ const lowerSourceToken = sourceTokenSymbol.toLowerCase();
151
+ const lowerVaultToken = vaultTokenSymbol.toLowerCase();
152
+ // Check if it's ETH wrap deposit
153
+ if (lowerSourceToken === 'eth' || lowerSourceToken === 's') {
154
+ return 'wrap';
155
+ }
156
+ // Check if it's a direct deposit (same token)
157
+ if (lowerSourceToken === lowerVaultToken) {
158
+ return 'direct';
159
+ }
160
+ // Otherwise it's a swap deposit
161
+ return 'swap';
162
+ }
163
+ }
164
+ exports.YelayVaultOperations = YelayVaultOperations;
@@ -0,0 +1,14 @@
1
+ import { ethers } from 'ethers';
2
+ export interface SendParam {
3
+ dstEid: number;
4
+ to: string;
5
+ amountLD: ethers.BigNumber;
6
+ minAmountLD: ethers.BigNumber;
7
+ extraOptions: string;
8
+ composeMsg: string;
9
+ oftCmd: string;
10
+ }
11
+ export interface MessagingFee {
12
+ nativeFee: ethers.BigNumber;
13
+ lzTokenFee: ethers.BigNumber;
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -3,4 +3,5 @@ export declare const ETHEREUM_CHAIN_ID = 1;
3
3
  export declare const ETHEREUM_SEPOLIA_CHAIN_ID = 11155111;
4
4
  export declare const ARBITRUM_CHAIN_ID = 42161;
5
5
  export declare const SONIC_CHAIN_ID = 146;
6
- export type ChainId = typeof BASE_CHAIN_ID | typeof ETHEREUM_CHAIN_ID | typeof ETHEREUM_SEPOLIA_CHAIN_ID | typeof ARBITRUM_CHAIN_ID | typeof SONIC_CHAIN_ID;
6
+ export declare const AVALANCHE_CHAIN_ID = 43114;
7
+ export type ChainId = typeof BASE_CHAIN_ID | typeof ETHEREUM_CHAIN_ID | typeof ETHEREUM_SEPOLIA_CHAIN_ID | typeof ARBITRUM_CHAIN_ID | typeof SONIC_CHAIN_ID | typeof AVALANCHE_CHAIN_ID;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SONIC_CHAIN_ID = exports.ARBITRUM_CHAIN_ID = exports.ETHEREUM_SEPOLIA_CHAIN_ID = exports.ETHEREUM_CHAIN_ID = exports.BASE_CHAIN_ID = void 0;
3
+ exports.AVALANCHE_CHAIN_ID = exports.SONIC_CHAIN_ID = exports.ARBITRUM_CHAIN_ID = exports.ETHEREUM_SEPOLIA_CHAIN_ID = exports.ETHEREUM_CHAIN_ID = exports.BASE_CHAIN_ID = void 0;
4
4
  exports.BASE_CHAIN_ID = 8453;
5
5
  exports.ETHEREUM_CHAIN_ID = 1;
6
6
  exports.ETHEREUM_SEPOLIA_CHAIN_ID = 11155111;
7
7
  exports.ARBITRUM_CHAIN_ID = 42161;
8
8
  exports.SONIC_CHAIN_ID = 146;
9
+ exports.AVALANCHE_CHAIN_ID = 43114;
@@ -43,6 +43,7 @@ type DeployedProject = {
43
43
  liveFrom: string;
44
44
  distributionType: string;
45
45
  isHidden: boolean;
46
+ siloVaults: string[];
46
47
  };
47
48
  export default DeployedProject;
48
49
  export type ProjectBacker = {
@@ -5,5 +5,7 @@ type LoyaltyCard = {
5
5
  level: number;
6
6
  cost: number;
7
7
  boost: number;
8
+ chanceToUpgrade: number;
9
+ minBurnPerSpinUsd: number;
8
10
  };
9
11
  export default LoyaltyCard;
@@ -5,10 +5,13 @@ type PerqConfig = {
5
5
  perqTokenAddress: string;
6
6
  perqTokenRecyclerAddress: string;
7
7
  perqSwapAndRecyclerAddress: string;
8
+ slotBurnTokenAddress: string;
8
9
  perqVestingAddress: string;
9
10
  swapAndDepositContractAddress: string;
10
11
  ethereumSwapperAddress: string;
11
12
  smartVaultManagerContractAddress: string;
13
+ bridgeMainnetPerqToSonicAddress: string;
14
+ bridgeSonicPerqToMainnetAddress: string;
12
15
  };
13
16
  export default PerqConfig;
14
17
  export declare const PRODUCTION: PerqConfig;
@@ -12,6 +12,9 @@ exports.PRODUCTION = {
12
12
  swapAndDepositContractAddress: '0xd8534197bd587f8226d12e0c864ef2cae6f82f5c',
13
13
  ethereumSwapperAddress: '0x33e52c206d584550193e642c8982f2fff6339994',
14
14
  smartVaultManagerContractAddress: '0x23daf34e2b9af02a74dc19cb52af727b19403874',
15
+ bridgeMainnetPerqToSonicAddress: '0x26c352304909CC7e59EEeD39242Eb7AFbC706Ad3',
16
+ bridgeSonicPerqToMainnetAddress: '0x26c352304909CC7e59EEeD39242Eb7AFbC706Ad3',
17
+ slotBurnTokenAddress: '0x71516ba944af3f2342da97519205f4fb9e51ad36',
15
18
  };
16
19
  exports.DEVELOPMENT = {
17
20
  route: 'https://dev.perq.finance',
@@ -22,4 +25,7 @@ exports.DEVELOPMENT = {
22
25
  swapAndDepositContractAddress: '0x5fb08e00de169f041711206a0995410884080177',
23
26
  ethereumSwapperAddress: '0xe411921ee9eedfefd7b9ae15bf232bd36949fcbbc',
24
27
  smartVaultManagerContractAddress: '0x2638d6c0b4ef6dee04050fa0b07ca62500435747',
28
+ bridgeMainnetPerqToSonicAddress: '0x26c352304909CC7e59EEeD39242Eb7AFbC706Ad3',
29
+ bridgeSonicPerqToMainnetAddress: '0x26c352304909CC7e59EEeD39242Eb7AFbC706Ad3',
30
+ slotBurnTokenAddress: '0x71516ba944af3f2342da97519205f4fb9e51ad36',
25
31
  };
@@ -0,0 +1,2 @@
1
+ type SdkType = 'yelay' | 'silo';
2
+ export default SdkType;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import LoyaltyCard from './LoyaltyCard';
2
+ interface SlotMachineSpinCost {
3
+ nextLoyaltyCard: LoyaltyCard;
4
+ sonicSpinCost: number;
5
+ perqSpinCost: number;
6
+ }
7
+ export default SlotMachineSpinCost;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
1
  import { ChainId } from './ChainId';
2
2
  import DepositToken from './DepositToken';
3
+ import SdkType from './SdkType';
3
4
  import Strategy from './Strategy';
4
5
  import StretchGoal from './StretchGoal';
5
6
  import VaultReward from './VaultReward';
@@ -26,5 +27,6 @@ type VaultData = {
26
27
  stretchGoals: StretchGoal[];
27
28
  rewards: VaultReward[];
28
29
  rewardTooltipName: string;
30
+ sdkType: SdkType;
29
31
  };
30
32
  export default VaultData;
@@ -0,0 +1,12 @@
1
+ import SdkType from './SdkType';
2
+ export interface VaultOperationParams {
3
+ sourceTokenAddress: string;
4
+ vaultTokenAddress: string;
5
+ vaultAddress: string;
6
+ amount: string;
7
+ sdkType: SdkType;
8
+ onChainProjectId?: number;
9
+ sourceTokenSymbol?: string;
10
+ vaultTokenSymbol?: string;
11
+ }
12
+ export type DepositType = 'direct' | 'swap' | 'wrap';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,9 +25,10 @@ import VaultData from './VaultData';
25
25
  import VaultReward, { RewardType } from './VaultReward';
26
26
  import VaultStats from './VaultStats';
27
27
  import VaultType from './VaultType';
28
+ import { VaultOperationParams, DepositType } from './VaultOperationParams';
28
29
  import VestingInfo from './VestingInfo';
29
30
  import YelayVersion from './YelayVersion';
30
31
  import Earnings from './Earnings';
31
32
  import LinkedPodWallets from './LinkedPodWallets';
32
33
  import MigrationOption from './MigrationOption';
33
- export { Asset, BasePayload, BeanEntry, BeansBalance, DeployedProject, DeployedVault, DepositToken, DetailedProjectData, ELoyaltyCardTier, NearWalletPayload, SuiWalletPayload, LinkedPodWallets, LoyaltyCard, MigrationOption, MyPerqData, NFTBoost, NonceEnrichedPayload, NonceEnrichedSignedPayload, PerqConfig, PerqToBeansSwapInfo, ProjectBacker, QLFastRedeem, ReducedProjectData, RewardType, SpecialEditionLoyaltyCard, Strategy, StretchGoal, SwapInfo, UpgradeLoyaltyCardPayload, UserRewards, VaultData, VaultReward, VaultStats, VaultType, VestingInfo, YelayVersion, Earnings, };
34
+ export { Asset, BasePayload, BeanEntry, BeansBalance, DeployedProject, DeployedVault, DepositToken, DetailedProjectData, ELoyaltyCardTier, NearWalletPayload, SuiWalletPayload, LinkedPodWallets, LoyaltyCard, MigrationOption, MyPerqData, NFTBoost, NonceEnrichedPayload, NonceEnrichedSignedPayload, PerqConfig, PerqToBeansSwapInfo, ProjectBacker, QLFastRedeem, ReducedProjectData, RewardType, SpecialEditionLoyaltyCard, Strategy, StretchGoal, SwapInfo, UpgradeLoyaltyCardPayload, UserRewards, VaultData, VaultReward, VaultStats, VaultType, VaultOperationParams, DepositType, VestingInfo, YelayVersion, Earnings, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dripfi/drip-sdk",
3
- "version": "1.4.28",
3
+ "version": "1.4.30-avalanche",
4
4
  "description": "Drip SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,7 +13,8 @@
13
13
  "pretty": "prettier --write \"./**/*.{js,jsx,mjs,cjs,ts,tsx,json}\""
14
14
  },
15
15
  "dependencies": {
16
- "@yelay-lite/sdk": "1.0.7",
16
+ "@dripfi/silo-sdk": "^0.0.1",
17
+ "@yelay-lite/sdk": "1.0.23",
17
18
  "ethers": "^5.7.2"
18
19
  },
19
20
  "author": "",