@dripfi/drip-sdk 1.4.28-slot-machine-4 → 1.4.29

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 (48) hide show
  1. package/README.md +88 -10
  2. package/dist/PerqSdk.d.ts +5 -1
  3. package/dist/PerqSdk.js +8 -1
  4. package/dist/abi/index.js +6 -6
  5. package/dist/constants.js +2 -2
  6. package/dist/contracts/{BasePerqContract.d.ts → BaseContract.d.ts} +1 -1
  7. package/dist/contracts/{BasePerqContract.js → BaseContract.js} +2 -2
  8. package/dist/contracts/BridgeMainnetPerqToSonicContract.d.ts +2 -2
  9. package/dist/contracts/BridgeMainnetPerqToSonicContract.js +3 -3
  10. package/dist/contracts/BridgeSonicPerqToMainnetContract.d.ts +2 -2
  11. package/dist/contracts/BridgeSonicPerqToMainnetContract.js +3 -3
  12. package/dist/contracts/SlotBurnTokenContract.d.ts +2 -2
  13. package/dist/contracts/SlotBurnTokenContract.js +2 -2
  14. package/dist/contracts/index.d.ts +6 -6
  15. package/dist/contracts/index.js +9 -9
  16. package/dist/contracts/{PerqSwapAndRecyclerContract.d.ts → perq/PerqSwapAndRecyclerContract.d.ts} +3 -3
  17. package/dist/contracts/{PerqSwapAndRecyclerContract.js → perq/PerqSwapAndRecyclerContract.js} +3 -3
  18. package/dist/contracts/{PerqTokenContract.d.ts → perq/PerqTokenContract.d.ts} +2 -2
  19. package/dist/contracts/{PerqTokenContract.js → perq/PerqTokenContract.js} +3 -3
  20. package/dist/contracts/{PerqTokenRecyclerContract.d.ts → perq/PerqTokenRecyclerContract.d.ts} +3 -3
  21. package/dist/contracts/{PerqTokenRecyclerContract.js → perq/PerqTokenRecyclerContract.js} +3 -3
  22. package/dist/contracts/{PerqVestingContract.d.ts → perq/PerqVestingContract.d.ts} +3 -3
  23. package/dist/contracts/{PerqVestingContract.js → perq/PerqVestingContract.js} +3 -3
  24. package/dist/subpackages/LoyaltyCardsPackage.js +4 -2
  25. package/dist/subpackages/SiloPackage.d.ts +18 -0
  26. package/dist/subpackages/SiloPackage.js +112 -0
  27. package/dist/subpackages/SiloVaultOperations.d.ts +31 -0
  28. package/dist/subpackages/SiloVaultOperations.js +138 -0
  29. package/dist/subpackages/TokenUtilsPackage.d.ts +14 -0
  30. package/dist/subpackages/TokenUtilsPackage.js +31 -4
  31. package/dist/subpackages/VaultHandlerPackage.d.ts +54 -0
  32. package/dist/subpackages/VaultHandlerPackage.js +107 -0
  33. package/dist/subpackages/YelayVaultOperations.d.ts +13 -0
  34. package/dist/subpackages/YelayVaultOperations.js +164 -0
  35. package/dist/types/DeployedProject.d.ts +1 -0
  36. package/dist/types/SdkType.d.ts +2 -0
  37. package/dist/types/SdkType.js +2 -0
  38. package/dist/types/VaultData.d.ts +2 -0
  39. package/dist/types/VaultOperationParams.d.ts +12 -0
  40. package/dist/types/VaultOperationParams.js +2 -0
  41. package/dist/types/index.d.ts +2 -1
  42. package/package.json +2 -1
  43. /package/dist/abi/{BridgeMainnetPerqToSonicAbi.json → perq/BridgeMainnetPerqToSonicAbi.json} +0 -0
  44. /package/dist/abi/{BridgeSonicPerqToMainnetAbi.json → perq/BridgeSonicPerqToMainnetAbi.json} +0 -0
  45. /package/dist/abi/{PerqSwapAndRecyclerAbi.json → perq/PerqSwapAndRecyclerAbi.json} +0 -0
  46. /package/dist/abi/{PerqTokenAbi.json → perq/PerqTokenAbi.json} +0 -0
  47. /package/dist/abi/{PerqVestingAbi.json → perq/PerqVestingAbi.json} +0 -0
  48. /package/dist/abi/{TokenRecyclerAbi.json → perq/TokenRecyclerAbi.json} +0 -0
package/README.md CHANGED
@@ -15,6 +15,8 @@ The Drip SDK is a TypeScript library designed to interact with the Perq protocol
15
15
  - [Vesting](#vesting)
16
16
  - [Recycler](#recycler)
17
17
  - [Sign Handler](#sign-handler)
18
+ - [Silo](#silo)
19
+ - [Vault Handler](#vault-handler)
18
20
  - [Examples](#examples)
19
21
  - [Types](#types)
20
22
  - [Abis](#abis)
@@ -52,6 +54,35 @@ const perqSdk = new PerqSdk(perqConfig, perqSupportedChainId, provider?: ethers.
52
54
 
53
55
  ## Modules
54
56
 
57
+ ### Automatic Deposit Type Detection
58
+
59
+ The SDK automatically determines the deposit type based on the provided parameters:
60
+
61
+ - **Direct Deposit**: When `sourceTokenSymbol` equals `vaultTokenSymbol`
62
+ - **Wrap Deposit**: When `sourceTokenSymbol` is "ETH" / "S" or any other native token
63
+ - **Swap Deposit**: When `sourceTokenSymbol` differs from `vaultTokenSymbol` only possible on certain `sdkType` vaults
64
+
65
+ ### Supported SDK Types
66
+
67
+ - **Yelay**: Supports direct deposits, ETH deposits, and swap deposits
68
+ - **Silo**: Supports standard ERC20 deposits and withdrawals
69
+
70
+ ### Vault Handler
71
+
72
+ Access vault methods through `sdk.vault`:
73
+
74
+ | Method | Description |
75
+ | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
76
+ | `getAllowance(params: VaultOperationParams): Promise<boolean>` | Checks if the user's allowance is sufficient for the `depositAmount` |
77
+ | `approveAllowance(params: VaultOperationParams): Promise<string>` | Approves the allowance for the `depositAmount` for the selected Vault |
78
+ | `deposit(params: VaultOperationParams): Promise<string>` | Deposits the `depositAmount` into the selected `vault` |
79
+ | `withdraw(params: VaultOperationParams): Promise<string>` | Withdraws the specified amount from the selected vault |
80
+ | `getBalance(vaultAddress: string, tokenAddress?: string, onChainProjectId?: number): Promise<string>` | Gets the user's balance for the specified vault |
81
+
82
+ ## Legacy Methods
83
+
84
+ For backward compatibility, the original methods are still available:
85
+
55
86
  ### Core SDK
56
87
 
57
88
  Core methods available directly on the SDK instance:
@@ -154,16 +185,15 @@ Access recycler methods through `sdk.recycler`:
154
185
 
155
186
  Access token utils methods through `sdk.tokenUtils`:
156
187
 
157
- | Method | Description |
158
-
159
- | -------------------------------------------------------------------- | -------------------------------------- |
160
- | `getTokenPrice(tokenName: string): Promise<number>` | Fetches the current price of a given token."perq", "weth" "eth" and "wbtc" are supported |
161
- | `getAllowance(tokenAddress: string, spender: string): Promise<string>` | Retrieves the current allowance for a token. |
162
- | `approveAllowance(tokenAddress: string, amount: string, spenderAddress: string): Promise<string>` | Approves a specific amount of tokens for use by a spender. |
163
- | `transferErc20Token(tokenAddress: string, amount: string, receiver: string): Promise<string>` | Transfers a specified amount of ERC20 tokens to a receiver. |
164
- | `wrapEther(amount: string, tokenAddress: string): Promise<string>` | Wraps a specified amount of Ether into a WETH token. |
165
- | `getERC20TokenAllowance(spender: string, tokenAddress: string): Promise<BigNumber>` | Retrieves the allowance for a specific ERC20 token. |
166
- | `getPerqTokenContractAddress(): string` | Returns the contract address of the Perq token. |
188
+ | Method | Description |
189
+ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
190
+ | `getTokenPrice(tokenName: string): Promise<number>` | Fetches the current price of a given token. "perq", "weth", "eth" and "wbtc" are supported |
191
+ | `getAllowance(tokenAddress: string, spender: string): Promise<string>` | Retrieves the current allowance for a token. |
192
+ | `approveAllowance(tokenAddress: string, amount: string, spenderAddress: string): Promise<string>` | Approves a specific amount of tokens for use by a spender. |
193
+ | `transferErc20Token(tokenAddress: string, amount: string, receiver: string): Promise<string>` | Transfers a specified amount of ERC20 tokens to a receiver. |
194
+ | `wrapEther(amount: string, tokenAddress: string): Promise<string>` | Wraps a specified amount of Ether into a WETH token. |
195
+ | `getERC20TokenAllowance(spender: string, tokenAddress: string): Promise<BigNumber>` | Retrieves the allowance for a specific ERC20 token. |
196
+ | `getPerqTokenContractAddress(): string` | Returns the contract address of the Perq token. |
167
197
 
168
198
  ### Sign Handler
169
199
 
@@ -173,6 +203,20 @@ Access signing methods through `sdk.signHandler`:
173
203
  | -------------------------------------------------------------------- | -------------------------------------- |
174
204
  | `signPayload<T>(payload: T): Promise<NonceEnrichedSignedPayload<T>>` | Signs a payload with nonce enrichment. |
175
205
 
206
+ ### Silo
207
+
208
+ Access silo methods through `sdk.silo`:
209
+
210
+ | Method | Description |
211
+ | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
212
+ | `deposit(assetAmount: string, vaultAddress: string): Promise<string \| undefined>` | Deposits into a Silo Vault. |
213
+ | `withdraw(assetAmount: string, vaultAddress: string): Promise<string \| undefined>` | Withdraws from a Silo Vault. Recommended for partial withdrawals. |
214
+ | `redeem(sharesAmount: string, vaultAddress: string): Promise<string \| undefined>` | Withdraws from a Silo Vault. Recommended for full withdraws. |
215
+ | `getBalanceInShares(vaultAddress: string): Promise<BigNumber>` | Get the users balance in Shares. |
216
+ | `getBalanceInAssets(vaultAddress: string): Promise<BigNumber>` | Get the users balance in the vaults currency/asset. |
217
+ | `getTotalSupply(vaultAddress: string): Promise<BigNumber>` | Retrieves the total amounts of shares in the Vault. |
218
+ | `getTotalAssets(vaultAddress: string): string` | Returns the total balance in the vaults currency/asset. |
219
+
176
220
  ## Examples
177
221
 
178
222
  ### `deposit(tokenAddress: string, vaultAddress: string, amount: string): Promise<string>`
@@ -402,6 +446,8 @@ type DepositToken = {
402
446
  tokenAddress: string;
403
447
  };
404
448
 
449
+ type DepositType = 'direct' | 'swap' | 'wrap';
450
+
405
451
  enum ELoyaltyCardTier {
406
452
  White = 'White',
407
453
  Ivory = 'Ivory',
@@ -412,6 +458,14 @@ enum ELoyaltyCardTier {
412
458
  Black = 'Black',
413
459
  }
414
460
 
461
+ interface VaultOperations {
462
+ getAllowance(params: VaultOperationParams): Promise<boolean>;
463
+ approveAllowance(params: VaultOperationParams): Promise<string>;
464
+ deposit(params: VaultOperationParams): Promise<string>;
465
+ withdraw(params: WithdrawParams): Promise<string>;
466
+ getBalance(vaultAddress: string, tokenAddress?: string, onChainProjectId?: number): Promise<string>;
467
+ }
468
+
415
469
  type LoyaltyCard = {
416
470
  id: string;
417
471
  tier: ELoyaltyCardTier;
@@ -507,6 +561,8 @@ type QLFastRedeem = {
507
561
  svtWithdrawn: string;
508
562
  };
509
563
 
564
+ type SdkType = 'yelay' | 'silo';
565
+
510
566
  type SpecialEditionLoyaltyCard = {
511
567
  id: string;
512
568
  name: string;
@@ -600,6 +656,7 @@ type VaultData = {
600
656
  stretchGoals: StretchGoal[];
601
657
  rewards: VaultReward[];
602
658
  rewardTooltipName: string;
659
+ sdkType: SdkType;
603
660
  };
604
661
 
605
662
  type VaultReward = {
@@ -624,6 +681,26 @@ type VaultStats = {
624
681
 
625
682
  type VaultType = 'launch' | 'earn' | 'airdrop';
626
683
 
684
+ interface WithdrawParams {
685
+ amount: string;
686
+ sdkType: SdkType;
687
+ tokenAddress: string;
688
+ vaultAddress: string;
689
+ // Optional parameters that may be needed for specific SDK implementations
690
+ onChainProjectId?: number; // needed for yelay SDK
691
+ }
692
+
693
+ interface VaultOperationParams {
694
+ sourceTokenAddress: string;
695
+ vaultTokenAddress: string;
696
+ vaultAddress: string;
697
+ amount: string;
698
+ sdkType: SdkType;
699
+ onChainProjectId?: number;
700
+ sourceTokenSymbol?: string;
701
+ vaultTokenSymbol?: string;
702
+ }
703
+
627
704
  type VestingInfo = {
628
705
  startTimestamp: string;
629
706
  endTimestamp: string;
@@ -718,6 +795,7 @@ type OverallStats = {
718
795
  totalUsers: number;
719
796
  };
720
797
 
798
+
721
799
  ```
722
800
 
723
801
  ## Abis
package/dist/PerqSdk.d.ts CHANGED
@@ -13,6 +13,8 @@ import UserPackage from './subpackages/UserPackage';
13
13
  import SignHandlerPackage from './subpackages/SignHandlerPackage';
14
14
  import PoolsPackage from './subpackages/PoolsPackage';
15
15
  import { PerqSupportedChainId } from './types/PerqConfig';
16
+ import SiloPackage from './subpackages/SiloPackage';
17
+ import VaultHandler from './subpackages/VaultHandlerPackage';
16
18
  export default class PerqSdk {
17
19
  perqApi: PerqApi;
18
20
  signer?: Signer;
@@ -25,12 +27,14 @@ export default class PerqSdk {
25
27
  user: UserPackage;
26
28
  signHandler: SignHandlerPackage;
27
29
  pools: PoolsPackage;
30
+ vault: VaultHandler;
28
31
  perqConfig: PerqConfig;
29
- yelayLiteSdk?: YelayLiteSdk;
30
32
  perqVestingContract: PerqVestingContract;
31
33
  perqTokenRecyclerContract: PerqTokenRecyclerContract;
32
34
  perqSwapAndRecyclerContract: PerqSwapAndRecyclerContract;
33
35
  slotBurnTokenContract: SlotBurnTokenContract;
36
+ yelayLiteSdk?: YelayLiteSdk;
37
+ siloPackage?: SiloPackage;
34
38
  constructor(perqConfig: PerqConfig, chainId: PerqSupportedChainId, provider?: ethers.providers.JsonRpcProvider);
35
39
  updateSigner(newSigner: Signer, chainId: PerqSupportedChainId): Promise<void>;
36
40
  }
package/dist/PerqSdk.js CHANGED
@@ -15,6 +15,8 @@ const TokenUtilsPackage_1 = __importDefault(require("./subpackages/TokenUtilsPac
15
15
  const UserPackage_1 = __importDefault(require("./subpackages/UserPackage"));
16
16
  const SignHandlerPackage_1 = __importDefault(require("./subpackages/SignHandlerPackage"));
17
17
  const PoolsPackage_1 = __importDefault(require("./subpackages/PoolsPackage"));
18
+ const SiloPackage_1 = __importDefault(require("./subpackages/SiloPackage"));
19
+ const VaultHandlerPackage_1 = __importDefault(require("./subpackages/VaultHandlerPackage"));
18
20
  class PerqSdk {
19
21
  perqApi;
20
22
  signer;
@@ -27,18 +29,21 @@ class PerqSdk {
27
29
  user;
28
30
  signHandler;
29
31
  pools;
32
+ vault;
30
33
  perqConfig;
31
- yelayLiteSdk;
32
34
  perqVestingContract;
33
35
  perqTokenRecyclerContract;
34
36
  perqSwapAndRecyclerContract;
35
37
  slotBurnTokenContract;
38
+ yelayLiteSdk;
39
+ siloPackage;
36
40
  constructor(perqConfig, chainId, provider) {
37
41
  this.perqConfig = perqConfig;
38
42
  const newSigner = provider?.getSigner();
39
43
  if (newSigner) {
40
44
  this.signer = newSigner;
41
45
  this.yelayLiteSdk = new sdk_1.YelayLiteSdk(this.signer, chainId, false);
46
+ this.siloPackage = new SiloPackage_1.default(newSigner);
42
47
  }
43
48
  this.vesting = new VestingPackage_1.default(this);
44
49
  this.bridge = new BridgePerqPackage_1.default(this);
@@ -49,6 +54,7 @@ class PerqSdk {
49
54
  this.user = new UserPackage_1.default(this);
50
55
  this.signHandler = new SignHandlerPackage_1.default(this);
51
56
  this.pools = new PoolsPackage_1.default(this);
57
+ this.vault = new VaultHandlerPackage_1.default(this);
52
58
  this.perqApi = new PerqApi_1.default(this);
53
59
  this.perqVestingContract = new contracts_1.PerqVestingContract(this);
54
60
  this.perqTokenRecyclerContract = new contracts_1.PerqTokenRecyclerContract(this);
@@ -63,6 +69,7 @@ class PerqSdk {
63
69
  this.perqSwapAndRecyclerContract = new contracts_1.PerqSwapAndRecyclerContract(this);
64
70
  this.slotBurnTokenContract = new contracts_1.SlotBurnTokenContract(this);
65
71
  this.bridge = new BridgePerqPackage_1.default(this);
72
+ this.siloPackage = new SiloPackage_1.default(newSigner);
66
73
  }
67
74
  }
68
75
  exports.default = PerqSdk;
package/dist/abi/index.js CHANGED
@@ -3,14 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const PerqSwapAndRecyclerAbi_json_1 = __importDefault(require("./PerqSwapAndRecyclerAbi.json"));
6
+ const PerqSwapAndRecyclerAbi_json_1 = __importDefault(require("../abi/perq/PerqSwapAndRecyclerAbi.json"));
7
7
  const WethTokenAbi_json_1 = __importDefault(require("./WethTokenAbi.json"));
8
- const PerqTokenAbi_json_1 = __importDefault(require("./PerqTokenAbi.json"));
9
- const TokenRecyclerAbi_json_1 = __importDefault(require("./TokenRecyclerAbi.json"));
10
- const PerqVestingAbi_json_1 = __importDefault(require("./PerqVestingAbi.json"));
11
8
  const SlotBurnTokenAbi_json_1 = __importDefault(require("./SlotBurnTokenAbi.json"));
12
- const BridgeSonicPerqToMainnetAbi_json_1 = __importDefault(require("./BridgeSonicPerqToMainnetAbi.json"));
13
- const BridgeMainnetPerqToSonicAbi_json_1 = __importDefault(require("./BridgeMainnetPerqToSonicAbi.json"));
9
+ const PerqTokenAbi_json_1 = __importDefault(require("../abi/perq/PerqTokenAbi.json"));
10
+ const TokenRecyclerAbi_json_1 = __importDefault(require("../abi/perq/TokenRecyclerAbi.json"));
11
+ const PerqVestingAbi_json_1 = __importDefault(require("../abi/perq/PerqVestingAbi.json"));
12
+ const BridgeSonicPerqToMainnetAbi_json_1 = __importDefault(require("../abi/perq/BridgeSonicPerqToMainnetAbi.json"));
13
+ const BridgeMainnetPerqToSonicAbi_json_1 = __importDefault(require("../abi/perq/BridgeMainnetPerqToSonicAbi.json"));
14
14
  exports.default = {
15
15
  PERQ_SWAP_AND_RECYCLER_ABI: PerqSwapAndRecyclerAbi_json_1.default,
16
16
  WETH_TOKEN_ABI: WethTokenAbi_json_1.default,
package/dist/constants.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SONIC_WS_TOKEN_ADDRESS = exports.SONIC_PERQ_TOKEN_ADDRESS = void 0;
4
- exports.SONIC_PERQ_TOKEN_ADDRESS = "0x26c352304909cc7e59eeed39242eb7afbc706ad3";
5
- exports.SONIC_WS_TOKEN_ADDRESS = "0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38";
4
+ exports.SONIC_PERQ_TOKEN_ADDRESS = '0x26c352304909cc7e59eeed39242eb7afbc706ad3';
5
+ exports.SONIC_WS_TOKEN_ADDRESS = '0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38';
@@ -1,5 +1,5 @@
1
1
  import { ethers } from 'ethers';
2
- export default abstract class BasePerqContract {
2
+ export default abstract class BaseContract {
3
3
  protected contract: ethers.Contract;
4
4
  constructor(address: string, abi: ethers.ContractInterface, signer?: ethers.Signer);
5
5
  updateSigner(newSigner: ethers.Signer): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ethers_1 = require("ethers");
4
- class BasePerqContract {
4
+ class BaseContract {
5
5
  contract;
6
6
  constructor(address, abi, signer) {
7
7
  this.contract = new ethers_1.ethers.Contract(address, abi, signer);
@@ -13,4 +13,4 @@ class BasePerqContract {
13
13
  return this.contract.address;
14
14
  }
15
15
  }
16
- exports.default = BasePerqContract;
16
+ exports.default = BaseContract;
@@ -1,8 +1,8 @@
1
1
  import { ContractTransaction, ethers } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
2
+ import BaseContract from './BaseContract';
3
3
  import PerqSdk from '../PerqSdk';
4
4
  import { MessagingFee, SendParam } from '../types/BridgePerq';
5
- export default class BridgeMainnetPerqToSonicContract extends BasePerqContract {
5
+ export default class BridgeMainnetPerqToSonicContract extends BaseContract {
6
6
  constructor(perqSdk: PerqSdk);
7
7
  send(sendParam: SendParam, fee: MessagingFee, refundAddress: string, overrides?: ethers.PayableOverrides): Promise<ContractTransaction>;
8
8
  quoteSend(sendParam: SendParam, payInLzToken: boolean): Promise<MessagingFee>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const BridgeMainnetPerqToSonicAbi_json_1 = __importDefault(require("../abi/BridgeMainnetPerqToSonicAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class BridgeMainnetPerqToSonicContract extends BasePerqContract_1.default {
7
+ const BridgeMainnetPerqToSonicAbi_json_1 = __importDefault(require("../abi/perq/BridgeMainnetPerqToSonicAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("./BaseContract"));
9
+ class BridgeMainnetPerqToSonicContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.bridgeMainnetPerqToSonicAddress, new ethers_1.ethers.utils.Interface(BridgeMainnetPerqToSonicAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -1,8 +1,8 @@
1
1
  import { ContractTransaction, ethers } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
2
+ import BaseContract from './BaseContract';
3
3
  import PerqSdk from '../PerqSdk';
4
4
  import { MessagingFee, SendParam } from '../types/BridgePerq';
5
- export default class BridgeSonicPerqToMainnetContract extends BasePerqContract {
5
+ export default class BridgeSonicPerqToMainnetContract extends BaseContract {
6
6
  constructor(perqSdk: PerqSdk);
7
7
  send(sendParam: SendParam, fee: MessagingFee, refundAddress: string, overrides?: ethers.PayableOverrides): Promise<ContractTransaction>;
8
8
  quoteSend(sendParam: SendParam, payInLzToken: boolean): Promise<MessagingFee>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const BridgeSonicPerqToMainnetAbi_json_1 = __importDefault(require("../abi/BridgeSonicPerqToMainnetAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class BridgeSonicPerqToMainnetContract extends BasePerqContract_1.default {
7
+ const BridgeSonicPerqToMainnetAbi_json_1 = __importDefault(require("../abi/perq/BridgeSonicPerqToMainnetAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("./BaseContract"));
9
+ class BridgeSonicPerqToMainnetContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.bridgeSonicPerqToMainnetAddress, new ethers_1.ethers.utils.Interface(BridgeSonicPerqToMainnetAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -1,7 +1,7 @@
1
1
  import { ContractTransaction } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
2
+ import BaseContract from './BaseContract';
3
3
  import PerqSdk from '../PerqSdk';
4
- export default class SlotBurnTokenContract extends BasePerqContract {
4
+ export default class SlotBurnTokenContract extends BaseContract {
5
5
  constructor(perqSdk: PerqSdk);
6
6
  deposit(tokenAddress: string, amount: string): Promise<ContractTransaction>;
7
7
  depositNative(amount: string): Promise<ContractTransaction>;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
7
  const SlotBurnTokenAbi_json_1 = __importDefault(require("../abi/SlotBurnTokenAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class SlotBurnTokenContract extends BasePerqContract_1.default {
8
+ const BaseContract_1 = __importDefault(require("./BaseContract"));
9
+ class SlotBurnTokenContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.slotBurnTokenAddress, new ethers_1.ethers.utils.Interface(SlotBurnTokenAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -1,9 +1,9 @@
1
- import BasePerqContract from './BasePerqContract';
1
+ import BaseContract from './BaseContract';
2
2
  import BridgeMainnetPerqToSonicContract from './BridgeMainnetPerqToSonicContract';
3
3
  import BridgeSonicPerqToMainnetContract from './BridgeSonicPerqToMainnetContract';
4
- import PerqSwapAndRecyclerContract from './PerqSwapAndRecyclerContract';
5
- import PerqTokenRecyclerContract from './PerqTokenRecyclerContract';
6
- import PerqTokenContract from './PerqTokenContract';
7
- import PerqVestingContract from './PerqVestingContract';
8
4
  import SlotBurnTokenContract from './SlotBurnTokenContract';
9
- export { BasePerqContract, BridgeMainnetPerqToSonicContract, BridgeSonicPerqToMainnetContract, PerqSwapAndRecyclerContract, PerqTokenRecyclerContract, PerqTokenContract, PerqVestingContract, SlotBurnTokenContract, };
5
+ import PerqSwapAndRecyclerContract from './perq/PerqSwapAndRecyclerContract';
6
+ import PerqTokenRecyclerContract from './perq/PerqTokenRecyclerContract';
7
+ import PerqTokenContract from './perq/PerqTokenContract';
8
+ import PerqVestingContract from './perq/PerqVestingContract';
9
+ export { BaseContract, BridgeMainnetPerqToSonicContract, BridgeSonicPerqToMainnetContract, PerqSwapAndRecyclerContract, PerqTokenRecyclerContract, PerqTokenContract, PerqVestingContract, SlotBurnTokenContract, };
@@ -3,20 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SlotBurnTokenContract = exports.PerqVestingContract = exports.PerqTokenContract = exports.PerqTokenRecyclerContract = exports.PerqSwapAndRecyclerContract = exports.BridgeSonicPerqToMainnetContract = exports.BridgeMainnetPerqToSonicContract = exports.BasePerqContract = void 0;
7
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
8
- exports.BasePerqContract = BasePerqContract_1.default;
6
+ exports.SlotBurnTokenContract = exports.PerqVestingContract = exports.PerqTokenContract = exports.PerqTokenRecyclerContract = exports.PerqSwapAndRecyclerContract = exports.BridgeSonicPerqToMainnetContract = exports.BridgeMainnetPerqToSonicContract = exports.BaseContract = void 0;
7
+ const BaseContract_1 = __importDefault(require("./BaseContract"));
8
+ exports.BaseContract = BaseContract_1.default;
9
9
  const BridgeMainnetPerqToSonicContract_1 = __importDefault(require("./BridgeMainnetPerqToSonicContract"));
10
10
  exports.BridgeMainnetPerqToSonicContract = BridgeMainnetPerqToSonicContract_1.default;
11
11
  const BridgeSonicPerqToMainnetContract_1 = __importDefault(require("./BridgeSonicPerqToMainnetContract"));
12
12
  exports.BridgeSonicPerqToMainnetContract = BridgeSonicPerqToMainnetContract_1.default;
13
- const PerqSwapAndRecyclerContract_1 = __importDefault(require("./PerqSwapAndRecyclerContract"));
13
+ const SlotBurnTokenContract_1 = __importDefault(require("./SlotBurnTokenContract"));
14
+ exports.SlotBurnTokenContract = SlotBurnTokenContract_1.default;
15
+ const PerqSwapAndRecyclerContract_1 = __importDefault(require("./perq/PerqSwapAndRecyclerContract"));
14
16
  exports.PerqSwapAndRecyclerContract = PerqSwapAndRecyclerContract_1.default;
15
- const PerqTokenRecyclerContract_1 = __importDefault(require("./PerqTokenRecyclerContract"));
17
+ const PerqTokenRecyclerContract_1 = __importDefault(require("./perq/PerqTokenRecyclerContract"));
16
18
  exports.PerqTokenRecyclerContract = PerqTokenRecyclerContract_1.default;
17
- const PerqTokenContract_1 = __importDefault(require("./PerqTokenContract"));
19
+ const PerqTokenContract_1 = __importDefault(require("./perq/PerqTokenContract"));
18
20
  exports.PerqTokenContract = PerqTokenContract_1.default;
19
- const PerqVestingContract_1 = __importDefault(require("./PerqVestingContract"));
21
+ const PerqVestingContract_1 = __importDefault(require("./perq/PerqVestingContract"));
20
22
  exports.PerqVestingContract = PerqVestingContract_1.default;
21
- const SlotBurnTokenContract_1 = __importDefault(require("./SlotBurnTokenContract"));
22
- exports.SlotBurnTokenContract = SlotBurnTokenContract_1.default;
@@ -1,7 +1,7 @@
1
1
  import { ContractTransaction } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
3
- import PerqSdk from '../PerqSdk';
4
- export default class PerqSwapAndRecyclerContract extends BasePerqContract {
2
+ import BaseContract from '../BaseContract';
3
+ import PerqSdk from '../../PerqSdk';
4
+ export default class PerqSwapAndRecyclerContract extends BaseContract {
5
5
  constructor(perqSdk: PerqSdk);
6
6
  swapAndRecycle(beneficiary: string | undefined, path: string[], amountInWithDecimals: string, minAmountOutWithDecimals: string, price: string, deadline: string, signature: string): Promise<ContractTransaction>;
7
7
  swapETHAndRecycle(beneficiary: string | undefined, path: string[], minAmountOutWithDecimals: string, amountInEth: string, price: string, deadline: string, signature: string): Promise<ContractTransaction>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const PerqSwapAndRecyclerAbi_json_1 = __importDefault(require("../abi/PerqSwapAndRecyclerAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class PerqSwapAndRecyclerContract extends BasePerqContract_1.default {
7
+ const PerqSwapAndRecyclerAbi_json_1 = __importDefault(require("../../abi/perq/PerqSwapAndRecyclerAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("../BaseContract"));
9
+ class PerqSwapAndRecyclerContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.perqSwapAndRecyclerAddress, new ethers_1.ethers.utils.Interface(PerqSwapAndRecyclerAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -1,6 +1,6 @@
1
1
  import { BigNumber, ContractTransaction, ethers } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
3
- export default class PerqTokenContract extends BasePerqContract {
2
+ import BaseContract from '../BaseContract';
3
+ export default class PerqTokenContract extends BaseContract {
4
4
  constructor(address: string, signer?: ethers.Signer);
5
5
  getAllowance(spender: string): Promise<BigNumber>;
6
6
  approve(spender: string, amount: BigNumber): Promise<ContractTransaction>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const PerqTokenAbi_json_1 = __importDefault(require("../abi/PerqTokenAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class PerqTokenContract extends BasePerqContract_1.default {
7
+ const PerqTokenAbi_json_1 = __importDefault(require("../../abi/perq/PerqTokenAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("../BaseContract"));
9
+ class PerqTokenContract extends BaseContract_1.default {
10
10
  constructor(address, signer) {
11
11
  super(address, new ethers_1.ethers.utils.Interface(PerqTokenAbi_json_1.default), signer);
12
12
  }
@@ -1,7 +1,7 @@
1
1
  import { ContractTransaction } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
3
- import PerqSdk from '../PerqSdk';
4
- export default class PerqTokenRecyclerContract extends BasePerqContract {
2
+ import BaseContract from '../BaseContract';
3
+ import PerqSdk from '../../PerqSdk';
4
+ export default class PerqTokenRecyclerContract extends BaseContract {
5
5
  constructor(perqSdk: PerqSdk);
6
6
  recycle(amountToRecycle: string, beneficiary: string | undefined, price: string, deadline: string, signature: string): Promise<ContractTransaction>;
7
7
  }
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const TokenRecyclerAbi_json_1 = __importDefault(require("../abi/TokenRecyclerAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class PerqTokenRecyclerContract extends BasePerqContract_1.default {
7
+ const TokenRecyclerAbi_json_1 = __importDefault(require("../../abi/perq/TokenRecyclerAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("../BaseContract"));
9
+ class PerqTokenRecyclerContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.perqTokenRecyclerAddress, new ethers_1.ethers.utils.Interface(TokenRecyclerAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -1,7 +1,7 @@
1
1
  import { BigNumber, ContractTransaction } from 'ethers';
2
- import BasePerqContract from './BasePerqContract';
3
- import PerqSdk from '../PerqSdk';
4
- export default class PerqVestingContract extends BasePerqContract {
2
+ import BaseContract from '../BaseContract';
3
+ import PerqSdk from '../../PerqSdk';
4
+ export default class PerqVestingContract extends BaseContract {
5
5
  constructor(perqSdk: PerqSdk);
6
6
  start(): Promise<BigNumber>;
7
7
  end(): Promise<BigNumber>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ethers_1 = require("ethers");
7
- const PerqVestingAbi_json_1 = __importDefault(require("../abi/PerqVestingAbi.json"));
8
- const BasePerqContract_1 = __importDefault(require("./BasePerqContract"));
9
- class PerqVestingContract extends BasePerqContract_1.default {
7
+ const PerqVestingAbi_json_1 = __importDefault(require("../../abi/perq/PerqVestingAbi.json"));
8
+ const BaseContract_1 = __importDefault(require("../BaseContract"));
9
+ class PerqVestingContract extends BaseContract_1.default {
10
10
  constructor(perqSdk) {
11
11
  super(perqSdk.perqConfig.perqVestingAddress, new ethers_1.ethers.utils.Interface(PerqVestingAbi_json_1.default), perqSdk.signer);
12
12
  }
@@ -71,7 +71,9 @@ class LoyaltyPackage {
71
71
  const isFirstLoyaltyCard = nextLoyaltyCard.level === 1 && nextLoyaltyCard.tier === types_1.ELoyaltyCardTier.White;
72
72
  const sonicPrice = await this.perqSdk.perqApi.fetchTokenPrice('ws');
73
73
  const perqPrice = await this.perqSdk.perqApi.fetchTokenPrice('perq');
74
- if (tokenAddress !== undefined && tokenAddress.toLowerCase() !== constants_1.SONIC_PERQ_TOKEN_ADDRESS && tokenAddress.toLowerCase() !== constants_1.SONIC_WS_TOKEN_ADDRESS) {
74
+ if (tokenAddress !== undefined &&
75
+ tokenAddress.toLowerCase() !== constants_1.SONIC_PERQ_TOKEN_ADDRESS &&
76
+ tokenAddress.toLowerCase() !== constants_1.SONIC_WS_TOKEN_ADDRESS) {
75
77
  throw Error(`Slot machine does not support deposits from token ${tokenAddress}`);
76
78
  }
77
79
  const tokenPrice = tokenAddress === undefined ? sonicPrice : tokenAddress === constants_1.SONIC_PERQ_TOKEN_ADDRESS ? perqPrice : sonicPrice;
@@ -101,7 +103,7 @@ class LoyaltyPackage {
101
103
  return {
102
104
  nextLoyaltyCard,
103
105
  sonicSpinCost,
104
- perqSpinCost
106
+ perqSpinCost,
105
107
  };
106
108
  }
107
109
  seededRandom(input) {
@@ -0,0 +1,18 @@
1
+ import { BigNumber, Signer } from 'ethers';
2
+ import { SiloSdk } from '@dripfi/silo-sdk';
3
+ export default class SiloPackage {
4
+ siloSdk: SiloSdk;
5
+ constructor(signer: Signer);
6
+ deposit(assetAmount: string, vaultAddress: string): Promise<string | undefined>;
7
+ withdraw(assetAmount: string, vaultAddress: string): Promise<string | undefined>;
8
+ redeem(sharesAmount: string, vaultAddress: string): Promise<string | undefined>;
9
+ getHistoricalTvl(): Promise<any>;
10
+ getApy(): Promise<any>;
11
+ getEarnedRewards(): Promise<any>;
12
+ getBalanceInShares(vaultAddress: string): Promise<BigNumber>;
13
+ getBalanceInAssets(vaultAddress: string): Promise<BigNumber>;
14
+ getTotalSupply(vaultAddress: string): Promise<BigNumber>;
15
+ getTotalAssets(vaultAddress: string): Promise<BigNumber>;
16
+ private convertToShares;
17
+ private convertToAssets;
18
+ }