@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.
- package/README.md +88 -10
- package/dist/PerqSdk.d.ts +5 -1
- package/dist/PerqSdk.js +8 -1
- package/dist/abi/index.js +6 -6
- package/dist/constants.js +2 -2
- package/dist/contracts/{BasePerqContract.d.ts → BaseContract.d.ts} +1 -1
- package/dist/contracts/{BasePerqContract.js → BaseContract.js} +2 -2
- package/dist/contracts/BridgeMainnetPerqToSonicContract.d.ts +2 -2
- package/dist/contracts/BridgeMainnetPerqToSonicContract.js +3 -3
- package/dist/contracts/BridgeSonicPerqToMainnetContract.d.ts +2 -2
- package/dist/contracts/BridgeSonicPerqToMainnetContract.js +3 -3
- package/dist/contracts/SlotBurnTokenContract.d.ts +2 -2
- package/dist/contracts/SlotBurnTokenContract.js +2 -2
- package/dist/contracts/index.d.ts +6 -6
- package/dist/contracts/index.js +9 -9
- package/dist/contracts/{PerqSwapAndRecyclerContract.d.ts → perq/PerqSwapAndRecyclerContract.d.ts} +3 -3
- package/dist/contracts/{PerqSwapAndRecyclerContract.js → perq/PerqSwapAndRecyclerContract.js} +3 -3
- package/dist/contracts/{PerqTokenContract.d.ts → perq/PerqTokenContract.d.ts} +2 -2
- package/dist/contracts/{PerqTokenContract.js → perq/PerqTokenContract.js} +3 -3
- package/dist/contracts/{PerqTokenRecyclerContract.d.ts → perq/PerqTokenRecyclerContract.d.ts} +3 -3
- package/dist/contracts/{PerqTokenRecyclerContract.js → perq/PerqTokenRecyclerContract.js} +3 -3
- package/dist/contracts/{PerqVestingContract.d.ts → perq/PerqVestingContract.d.ts} +3 -3
- package/dist/contracts/{PerqVestingContract.js → perq/PerqVestingContract.js} +3 -3
- package/dist/subpackages/LoyaltyCardsPackage.js +4 -2
- package/dist/subpackages/SiloPackage.d.ts +18 -0
- package/dist/subpackages/SiloPackage.js +112 -0
- package/dist/subpackages/SiloVaultOperations.d.ts +31 -0
- package/dist/subpackages/SiloVaultOperations.js +138 -0
- package/dist/subpackages/TokenUtilsPackage.d.ts +14 -0
- package/dist/subpackages/TokenUtilsPackage.js +31 -4
- package/dist/subpackages/VaultHandlerPackage.d.ts +54 -0
- package/dist/subpackages/VaultHandlerPackage.js +107 -0
- package/dist/subpackages/YelayVaultOperations.d.ts +13 -0
- package/dist/subpackages/YelayVaultOperations.js +164 -0
- package/dist/types/DeployedProject.d.ts +1 -0
- package/dist/types/SdkType.d.ts +2 -0
- package/dist/types/SdkType.js +2 -0
- package/dist/types/VaultData.d.ts +2 -0
- package/dist/types/VaultOperationParams.d.ts +12 -0
- package/dist/types/VaultOperationParams.js +2 -0
- package/dist/types/index.d.ts +2 -1
- package/package.json +2 -1
- /package/dist/abi/{BridgeMainnetPerqToSonicAbi.json → perq/BridgeMainnetPerqToSonicAbi.json} +0 -0
- /package/dist/abi/{BridgeSonicPerqToMainnetAbi.json → perq/BridgeSonicPerqToMainnetAbi.json} +0 -0
- /package/dist/abi/{PerqSwapAndRecyclerAbi.json → perq/PerqSwapAndRecyclerAbi.json} +0 -0
- /package/dist/abi/{PerqTokenAbi.json → perq/PerqTokenAbi.json} +0 -0
- /package/dist/abi/{PerqVestingAbi.json → perq/PerqVestingAbi.json} +0 -0
- /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
|
|
158
|
-
|
|
159
|
-
|
|
|
160
|
-
| `
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
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("
|
|
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
|
|
13
|
-
const
|
|
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 =
|
|
5
|
-
exports.SONIC_WS_TOKEN_ADDRESS =
|
|
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
|
|
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
|
|
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 =
|
|
16
|
+
exports.default = BaseContract;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ContractTransaction, ethers } from 'ethers';
|
|
2
|
-
import
|
|
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
|
|
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
|
|
9
|
-
class BridgeMainnetPerqToSonicContract extends
|
|
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
|
|
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
|
|
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
|
|
9
|
-
class BridgeSonicPerqToMainnetContract extends
|
|
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
|
|
2
|
+
import BaseContract from './BaseContract';
|
|
3
3
|
import PerqSdk from '../PerqSdk';
|
|
4
|
-
export default class SlotBurnTokenContract extends
|
|
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
|
|
9
|
-
class SlotBurnTokenContract extends
|
|
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
|
|
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
|
-
|
|
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, };
|
package/dist/contracts/index.js
CHANGED
|
@@ -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.
|
|
7
|
-
const
|
|
8
|
-
exports.
|
|
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
|
|
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;
|
package/dist/contracts/{PerqSwapAndRecyclerContract.d.ts → perq/PerqSwapAndRecyclerContract.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContractTransaction } from 'ethers';
|
|
2
|
-
import
|
|
3
|
-
import PerqSdk from '
|
|
4
|
-
export default class PerqSwapAndRecyclerContract extends
|
|
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>;
|
package/dist/contracts/{PerqSwapAndRecyclerContract.js → perq/PerqSwapAndRecyclerContract.js}
RENAMED
|
@@ -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("
|
|
8
|
-
const
|
|
9
|
-
class PerqSwapAndRecyclerContract extends
|
|
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
|
|
3
|
-
export default class PerqTokenContract extends
|
|
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("
|
|
8
|
-
const
|
|
9
|
-
class PerqTokenContract extends
|
|
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
|
}
|
package/dist/contracts/{PerqTokenRecyclerContract.d.ts → perq/PerqTokenRecyclerContract.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContractTransaction } from 'ethers';
|
|
2
|
-
import
|
|
3
|
-
import PerqSdk from '
|
|
4
|
-
export default class PerqTokenRecyclerContract extends
|
|
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("
|
|
8
|
-
const
|
|
9
|
-
class PerqTokenRecyclerContract extends
|
|
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
|
|
3
|
-
import PerqSdk from '
|
|
4
|
-
export default class PerqVestingContract extends
|
|
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("
|
|
8
|
-
const
|
|
9
|
-
class PerqVestingContract extends
|
|
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 &&
|
|
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
|
+
}
|