@aurigami/sdk 1.23.1 → 1.24.1
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/SDK.d.ts +48 -65
- package/dist/SDK.js +165 -0
- package/dist/abis/index.d.ts +18 -18
- package/dist/abis/index.js +39 -0
- package/dist/consts/constants.d.ts +139 -139
- package/dist/consts/constants.js +185 -0
- package/dist/consts/decimals.d.ts +1 -1
- package/dist/consts/decimals.js +35 -0
- package/dist/consts/deployments.d.ts +3 -3
- package/dist/consts/deployments.js +9 -0
- package/dist/consts/dummy.d.ts +13 -13
- package/dist/consts/dummy.js +43 -0
- package/dist/consts/index.d.ts +5 -5
- package/dist/consts/index.js +9 -0
- package/dist/consts/symbols.d.ts +1 -1
- package/dist/consts/symbols.js +10 -0
- package/dist/entities/BlockchainEntity.d.ts +13 -13
- package/dist/entities/BlockchainEntity.js +36 -0
- package/dist/entities/auriEnv.d.ts +34 -40
- package/dist/entities/auriEnv.js +166 -0
- package/dist/entities/index.d.ts +4 -4
- package/dist/entities/index.js +8 -0
- package/dist/entities/token.d.ts +7 -7
- package/dist/entities/token.js +27 -0
- package/dist/entities/tokenAmount.d.ts +13 -13
- package/dist/entities/tokenAmount.js +52 -0
- package/dist/helpers/aurigami-api.d.ts +13 -13
- package/dist/helpers/aurigami-api.js +26 -0
- package/dist/helpers/aurora-api-helpers.d.ts +1 -1
- package/dist/helpers/aurora-api-helpers.js +15 -0
- package/dist/helpers/graphql-helpers.d.ts +1 -1
- package/dist/helpers/graphql-helpers.js +13 -0
- package/dist/helpers/helpers.d.ts +23 -40
- package/dist/helpers/helpers.js +148 -0
- package/dist/helpers/historicalPriceFetcher.d.ts +15 -15
- package/dist/helpers/historicalPriceFetcher.js +142 -0
- package/dist/helpers/index.d.ts +7 -7
- package/dist/helpers/index.js +11 -0
- package/dist/helpers/kyber-aggregator-api.d.ts +5 -5
- package/dist/helpers/kyber-aggregator-api.js +27 -0
- package/dist/helpers/multicall.d.ts +40 -0
- package/dist/helpers/multicall.js +203 -0
- package/dist/helpers/notification-api.d.ts +2 -2
- package/dist/helpers/notification-api.js +21 -0
- package/dist/helpers/one-inch-aggregator-api.d.ts +21 -21
- package/dist/helpers/one-inch-aggregator-api.js +19 -0
- package/dist/helpers/priceFetcher.d.ts +36 -36
- package/dist/helpers/priceFetcher.js +292 -0
- package/dist/helpers/subgraphQuery.d.ts +1 -1
- package/dist/helpers/subgraphQuery.js +22 -0
- package/dist/helpers/transfer-event-query.d.ts +17 -26
- package/dist/helpers/transfer-event-query.js +41 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +17 -8
- package/dist/interactors/Airdrop.d.ts +17 -26
- package/dist/interactors/Airdrop.js +48 -0
- package/dist/interactors/MoneyMarket.d.ts +63 -63
- package/dist/interactors/MoneyMarket.js +392 -0
- package/dist/interactors/Multicall.d.ts +15 -18
- package/dist/interactors/Multicall.js +36 -0
- package/dist/interactors/Papermill.d.ts +27 -57
- package/dist/interactors/Papermill.js +125 -0
- package/dist/interactors/PlyGame.d.ts +30 -42
- package/dist/interactors/PlyGame.js +146 -0
- package/dist/interactors/PlyTokenLock.d.ts +16 -16
- package/dist/interactors/PlyTokenLock.js +44 -0
- package/dist/interactors/Pulp.d.ts +17 -17
- package/dist/interactors/Pulp.js +43 -0
- package/dist/interactors/Referral.d.ts +35 -78
- package/dist/interactors/Referral.js +158 -0
- package/dist/interactors/Staking.d.ts +20 -26
- package/dist/interactors/Staking.js +106 -0
- package/dist/interactors/index.d.ts +9 -9
- package/dist/interactors/index.js +13 -0
- package/dist/interactors/misc.d.ts +31 -39
- package/dist/interactors/misc.js +318 -0
- package/dist/types/index.d.ts +175 -197
- package/dist/types/index.js +18 -0
- package/package.json +4 -16
- package/dist/sdk.cjs.development.js +0 -6325
- package/dist/sdk.cjs.development.js.map +0 -1
- package/dist/sdk.cjs.production.min.js +0 -2
- package/dist/sdk.cjs.production.min.js.map +0 -1
- package/dist/sdk.esm.js +0 -6193
- package/dist/sdk.esm.js.map +0 -1
- package/src/SDK.ts +0 -223
- package/src/abis/index.ts +0 -38
- package/src/consts/constants.ts +0 -210
- package/src/consts/decimals.ts +0 -31
- package/src/consts/deployments.ts +0 -4
- package/src/consts/dummy.ts +0 -51
- package/src/consts/index.ts +0 -5
- package/src/consts/symbols.ts +0 -9
- package/src/entities/BlockchainEntity.ts +0 -29
- package/src/entities/auriEnv.ts +0 -178
- package/src/entities/index.ts +0 -4
- package/src/entities/token.ts +0 -21
- package/src/entities/tokenAmount.ts +0 -48
- package/src/helpers/aurigami-api.ts +0 -42
- package/src/helpers/aurora-api-helpers.ts +0 -17
- package/src/helpers/graphql-helpers.ts +0 -8
- package/src/helpers/helpers.ts +0 -212
- package/src/helpers/historicalPriceFetcher.ts +0 -203
- package/src/helpers/index.ts +0 -7
- package/src/helpers/kyber-aggregator-api.ts +0 -37
- package/src/helpers/notification-api.ts +0 -22
- package/src/helpers/one-inch-aggregator-api.ts +0 -45
- package/src/helpers/priceFetcher.ts +0 -389
- package/src/helpers/subgraphQuery.ts +0 -17
- package/src/helpers/transfer-event-query.ts +0 -68
- package/src/index.ts +0 -14
- package/src/interactors/Airdrop.ts +0 -72
- package/src/interactors/MoneyMarket.ts +0 -482
- package/src/interactors/Multicall.ts +0 -50
- package/src/interactors/Papermill.ts +0 -185
- package/src/interactors/PlyGame.ts +0 -172
- package/src/interactors/PlyTokenLock.ts +0 -47
- package/src/interactors/Pulp.ts +0 -39
- package/src/interactors/Referral.ts +0 -214
- package/src/interactors/Staking.ts +0 -152
- package/src/interactors/index.ts +0 -9
- package/src/interactors/misc.ts +0 -431
- package/src/types/index.ts +0 -222
|
@@ -1,78 +1,35 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead } from '../entities';
|
|
3
|
-
import { Address, NetworkConnection, ReferralReward } from '../types';
|
|
4
|
-
export declare class ReferralRead extends BlockchainEntityRead {
|
|
5
|
-
readonly env: AuriEnv;
|
|
6
|
-
constructor(networkConnection: NetworkConnection);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
referralRewards(userAddr: Address): Promise<ReferralReward[]>;
|
|
37
|
-
/**
|
|
38
|
-
* Top 50 reward earners from the last round, sorted by token amount
|
|
39
|
-
*/
|
|
40
|
-
leaderboard(campaign: string): Promise<ReferralReward[]>;
|
|
41
|
-
/**
|
|
42
|
-
* current number of slots under a referral code being used that exceed minimum deposit amount
|
|
43
|
-
*/
|
|
44
|
-
slotsInUse(): Promise<number>;
|
|
45
|
-
totalReferralSlots(): number;
|
|
46
|
-
queuePosition(address: Address): Promise<number>;
|
|
47
|
-
/**
|
|
48
|
-
* a way to determine qualification status of a user. null if not referred yet,
|
|
49
|
-
* qualified if referred + min deposit, notQualified if referred + min deposit
|
|
50
|
-
* not reached or withdrew too early
|
|
51
|
-
*/
|
|
52
|
-
userReferralStatus(userAddr: Address): Promise<string>;
|
|
53
|
-
isWhitelistedAddress(address: Address): Promise<boolean>;
|
|
54
|
-
isOnAuroraPlus(address: Address): Promise<boolean>;
|
|
55
|
-
isNewUserAtReferralTime(address: Address): Promise<boolean>;
|
|
56
|
-
depositedMoreThanMinimumAmount(address: Address): Promise<boolean>;
|
|
57
|
-
}
|
|
58
|
-
export declare class ReferralReadWrite extends ReferralRead {
|
|
59
|
-
/**
|
|
60
|
-
* Generate a referral code for a given address.
|
|
61
|
-
*
|
|
62
|
-
* Called when an user want to creates his own referral code
|
|
63
|
-
*/
|
|
64
|
-
registerNewReferralCode(): Promise<TransactionResponse>;
|
|
65
|
-
/**
|
|
66
|
-
* Called when an user confirms he is referred by a specified code
|
|
67
|
-
*/
|
|
68
|
-
useReferralCode(code: string): Promise<TransactionResponse>;
|
|
69
|
-
/**
|
|
70
|
-
* Claim all unclaimed rewards for a given user
|
|
71
|
-
*/
|
|
72
|
-
claimReferralRewards(): Promise<TransactionResponse>;
|
|
73
|
-
}
|
|
74
|
-
export declare class Referral extends BlockchainEntity {
|
|
75
|
-
constructor();
|
|
76
|
-
read(networkConnection: NetworkConnection): ReferralRead;
|
|
77
|
-
readWrite(networkConnection: NetworkConnection): ReferralReadWrite;
|
|
78
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead } from '../entities';
|
|
3
|
+
import { Address, NetworkConnection, ReferralReward } from '../types';
|
|
4
|
+
export declare class ReferralRead extends BlockchainEntityRead {
|
|
5
|
+
readonly env: AuriEnv;
|
|
6
|
+
constructor(networkConnection: NetworkConnection);
|
|
7
|
+
protected generateReferralCode(): string;
|
|
8
|
+
getUserReferralCode(userAddr: Address): Promise<string>;
|
|
9
|
+
getReferralCodeUsed(userAddr: Address): Promise<string>;
|
|
10
|
+
getReferralCodeOwner(code: string): Promise<Address>;
|
|
11
|
+
getReferralsList(userAddr: Address): Promise<{
|
|
12
|
+
user: string;
|
|
13
|
+
timestamp: number;
|
|
14
|
+
}[]>;
|
|
15
|
+
referralRewards(userAddr: Address): Promise<ReferralReward[]>;
|
|
16
|
+
leaderboard(campaign: string): Promise<ReferralReward[]>;
|
|
17
|
+
slotsInUse(): Promise<number>;
|
|
18
|
+
totalReferralSlots(): number;
|
|
19
|
+
queuePosition(address: Address): Promise<number>;
|
|
20
|
+
userReferralStatus(userAddr: Address): Promise<string>;
|
|
21
|
+
isWhitelistedAddress(address: Address): Promise<boolean>;
|
|
22
|
+
isOnAuroraPlus(address: Address): Promise<boolean>;
|
|
23
|
+
isNewUserAtReferralTime(address: Address): Promise<boolean>;
|
|
24
|
+
depositedMoreThanMinimumAmount(address: Address): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
export declare class ReferralReadWrite extends ReferralRead {
|
|
27
|
+
registerNewReferralCode(): Promise<TransactionResponse>;
|
|
28
|
+
useReferralCode(code: string): Promise<TransactionResponse>;
|
|
29
|
+
claimReferralRewards(): Promise<TransactionResponse>;
|
|
30
|
+
}
|
|
31
|
+
export declare class Referral extends BlockchainEntity {
|
|
32
|
+
constructor();
|
|
33
|
+
read(networkConnection: NetworkConnection): ReferralRead;
|
|
34
|
+
readWrite(networkConnection: NetworkConnection): ReferralReadWrite;
|
|
35
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Referral = exports.ReferralReadWrite = exports.ReferralRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const consts_1 = require("../consts");
|
|
8
|
+
const entities_1 = require("../entities");
|
|
9
|
+
const helpers_1 = require("../helpers");
|
|
10
|
+
const AuriAPI = tslib_1.__importStar(require("../helpers/aurigami-api"));
|
|
11
|
+
const Airdrop_1 = require("./Airdrop");
|
|
12
|
+
class ReferralRead extends entities_1.BlockchainEntityRead {
|
|
13
|
+
constructor(networkConnection) {
|
|
14
|
+
super(networkConnection);
|
|
15
|
+
Object.defineProperty(this, "env", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
this.env = new entities_1.AuriEnv(networkConnection);
|
|
22
|
+
}
|
|
23
|
+
generateReferralCode() {
|
|
24
|
+
let letters = 'abcdefghijklmnopqrstuvwxyz';
|
|
25
|
+
let numbers = '1234567890';
|
|
26
|
+
let charset = letters + letters.toUpperCase() + numbers;
|
|
27
|
+
let R = '';
|
|
28
|
+
for (var i = 0; i < 10; i++)
|
|
29
|
+
R += charset[Math.floor(Math.random() * charset.length)];
|
|
30
|
+
return R;
|
|
31
|
+
}
|
|
32
|
+
async getUserReferralCode(userAddr) {
|
|
33
|
+
const result = await this.env.referralDirectoryV2.raw.userReferralCode(userAddr);
|
|
34
|
+
return ethers_1.ethers.utils.parseBytes32String(result);
|
|
35
|
+
}
|
|
36
|
+
async getReferralCodeUsed(userAddr) {
|
|
37
|
+
const result = await this.env.referralDirectoryV2.raw.referralCodeUsed(userAddr);
|
|
38
|
+
return ethers_1.ethers.utils.parseBytes32String(result);
|
|
39
|
+
}
|
|
40
|
+
async getReferralCodeOwner(code) {
|
|
41
|
+
const referralCode = ethers_1.ethers.utils.formatBytes32String(code);
|
|
42
|
+
return this.env.referralDirectoryV2.raw.referralCodeOwner(referralCode);
|
|
43
|
+
}
|
|
44
|
+
async getReferralsList(userAddr) {
|
|
45
|
+
const result = await AuriAPI.getPaginatedApi('/referral/list', { address: userAddr });
|
|
46
|
+
const blocks = result.items.map((item) => item.blockNumber);
|
|
47
|
+
const blocksTimestamp = await (0, helpers_1.getBlocksTimestamp)(this._networkConnection.provider, blocks);
|
|
48
|
+
const items = result.items.map((item, i) => ({
|
|
49
|
+
user: item.user,
|
|
50
|
+
timestamp: blocksTimestamp[i],
|
|
51
|
+
}));
|
|
52
|
+
return items;
|
|
53
|
+
}
|
|
54
|
+
async referralRewards(userAddr) {
|
|
55
|
+
const result = await AuriAPI.getPaginatedApi('/referral/rewards', { address: userAddr });
|
|
56
|
+
let items = result.items.map((item, i) => ({
|
|
57
|
+
campaign: item.campaign,
|
|
58
|
+
userAddr: userAddr,
|
|
59
|
+
isReferrer: item.campaign.includes('referrer'),
|
|
60
|
+
rewardTokenAmount: entities_1.TokenAmount.fromAddressAndAmount(item.token, item.amount),
|
|
61
|
+
startTime: consts_1.REFERRAL_CAMPAIGNS[item.campaign].start,
|
|
62
|
+
endTime: consts_1.REFERRAL_CAMPAIGNS[item.campaign].end,
|
|
63
|
+
transactionHash: item.transactionHash ?? null,
|
|
64
|
+
refereeAddress: null,
|
|
65
|
+
}));
|
|
66
|
+
return items;
|
|
67
|
+
}
|
|
68
|
+
async leaderboard(campaign) {
|
|
69
|
+
const result = await AuriAPI.getPaginatedApi('/referral/leaderboard', { campaign: campaign });
|
|
70
|
+
const items = result.items.map((item, i) => ({
|
|
71
|
+
campaign: campaign,
|
|
72
|
+
userAddr: item.user,
|
|
73
|
+
isReferrer: item.campaign.includes('referrer'),
|
|
74
|
+
rewardTokenAmount: entities_1.TokenAmount.fromAddressAndAmount(item.token, item.amount),
|
|
75
|
+
startTime: consts_1.REFERRAL_CAMPAIGNS[item.campaign].start,
|
|
76
|
+
endTime: consts_1.REFERRAL_CAMPAIGNS[item.campaign].end,
|
|
77
|
+
transactionHash: null,
|
|
78
|
+
refereeAddress: null,
|
|
79
|
+
}));
|
|
80
|
+
items.sort((a, b) => b.rewardTokenAmount.compare(a.rewardTokenAmount));
|
|
81
|
+
return items;
|
|
82
|
+
}
|
|
83
|
+
async slotsInUse() {
|
|
84
|
+
let result = await AuriAPI.getApi('/referral/slotsInUse');
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
totalReferralSlots() {
|
|
88
|
+
return 500;
|
|
89
|
+
}
|
|
90
|
+
async queuePosition(address) {
|
|
91
|
+
let result = await AuriAPI.getApi('/referral/queuePosition', { address: address });
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
async userReferralStatus(userAddr) {
|
|
95
|
+
let result = await AuriAPI.getApi('/referral/referralStatus', { address: userAddr });
|
|
96
|
+
switch (result) {
|
|
97
|
+
case -1:
|
|
98
|
+
return 'notReferred';
|
|
99
|
+
case 0:
|
|
100
|
+
return 'notQualified';
|
|
101
|
+
case 1:
|
|
102
|
+
return 'Qualified';
|
|
103
|
+
default:
|
|
104
|
+
return 'Withdrawn';
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async isWhitelistedAddress(address) {
|
|
108
|
+
let result = await this.env.referralDirectoryV2.raw.isUserWhitelisted(address);
|
|
109
|
+
return result.eq(1);
|
|
110
|
+
}
|
|
111
|
+
async isOnAuroraPlus(address) {
|
|
112
|
+
let resp = await axios_1.default.get(consts_1.AURORA_PLUS_API_PREFIX + address);
|
|
113
|
+
return resp.data.status == 'active';
|
|
114
|
+
}
|
|
115
|
+
async isNewUserAtReferralTime(address) {
|
|
116
|
+
let result = await AuriAPI.getApi('/referral/isNewUser', { address: address });
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
async depositedMoreThanMinimumAmount(address) {
|
|
120
|
+
let result = await AuriAPI.getApi('/referral/depositedEnough', { address: address });
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.ReferralRead = ReferralRead;
|
|
125
|
+
class ReferralReadWrite extends ReferralRead {
|
|
126
|
+
async registerNewReferralCode() {
|
|
127
|
+
const referralCode = ethers_1.ethers.utils.formatBytes32String(this.generateReferralCode());
|
|
128
|
+
return this.env.referralDirectoryV2.raw
|
|
129
|
+
.connect(this._networkConnection.signer)
|
|
130
|
+
.registerNewUserReferralCode(referralCode);
|
|
131
|
+
}
|
|
132
|
+
async useReferralCode(code) {
|
|
133
|
+
const referralCode = ethers_1.ethers.utils.formatBytes32String(code);
|
|
134
|
+
return this.env.referralDirectoryV2.raw
|
|
135
|
+
.connect(this._networkConnection.signer)
|
|
136
|
+
.registerReferralCodeUsed(referralCode);
|
|
137
|
+
}
|
|
138
|
+
async claimReferralRewards() {
|
|
139
|
+
const unclaimedRewards = (await this.referralRewards(await this._networkConnection.signer.getAddress())).filter((reward) => reward.transactionHash == null);
|
|
140
|
+
const campaigns = unclaimedRewards.map((reward) => reward.campaign);
|
|
141
|
+
const tokens = unclaimedRewards.map((reward) => reward.rewardTokenAmount.token.address);
|
|
142
|
+
return new Airdrop_1.AirdropReadWrite(this._networkConnection).redeemMultiple(campaigns, tokens);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.ReferralReadWrite = ReferralReadWrite;
|
|
146
|
+
class Referral extends entities_1.BlockchainEntity {
|
|
147
|
+
constructor() {
|
|
148
|
+
super();
|
|
149
|
+
}
|
|
150
|
+
read(networkConnection) {
|
|
151
|
+
return new ReferralRead(networkConnection);
|
|
152
|
+
}
|
|
153
|
+
readWrite(networkConnection) {
|
|
154
|
+
return new ReferralReadWrite(networkConnection);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.Referral = Referral;
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmZXJyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJhY3RvcnMvUmVmZXJyYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLDBEQUEwQjtBQUMxQixtQ0FBZ0M7QUFDaEMsc0NBQXVFO0FBQ3ZFLDBDQUEyRjtBQUMzRix3Q0FBZ0Q7QUFDaEQseUVBQW1EO0FBRW5ELHVDQUE2QztBQUU3QyxNQUFhLFlBQWEsU0FBUSwrQkFBb0I7SUFFcEQsWUFBWSxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFGWDs7Ozs7V0FBYTtRQUczQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFNUyxvQkFBb0I7UUFDNUIsSUFBSSxPQUFPLEdBQUcsNEJBQTRCLENBQUM7UUFDM0MsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzNCLElBQUksT0FBTyxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3hELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0RixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFPTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBaUI7UUFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRixPQUFPLGVBQU0sQ0FBQyxLQUFL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
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
3
|
-
import { NetworkConnection, PLYWNEARPoolDetails } from '../types';
|
|
4
|
-
export declare class StakingRead extends BlockchainEntityRead {
|
|
5
|
-
readonly env: AuriEnv;
|
|
6
|
-
constructor(networkConnection: NetworkConnection);
|
|
7
|
-
getPLYWNEARPoolDetails(): Promise<PLYWNEARPoolDetails>;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
export declare class Staking extends BlockchainEntity {
|
|
23
|
-
constructor();
|
|
24
|
-
read(networkConnection: NetworkConnection): StakingRead;
|
|
25
|
-
readWrite(networkConnection: NetworkConnection): StakingReadWrite;
|
|
26
|
-
}
|
|
1
|
+
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { AuriEnv, BlockchainEntity, BlockchainEntityRead, TokenAmount } from '../entities';
|
|
3
|
+
import { NetworkConnection, PLYWNEARPoolDetails } from '../types';
|
|
4
|
+
export declare class StakingRead extends BlockchainEntityRead {
|
|
5
|
+
readonly env: AuriEnv;
|
|
6
|
+
constructor(networkConnection: NetworkConnection);
|
|
7
|
+
getPLYWNEARPoolDetails(): Promise<PLYWNEARPoolDetails>;
|
|
8
|
+
stakeBalanceOf(user: string): Promise<TokenAmount>;
|
|
9
|
+
LpBalanceOf(user: string): Promise<TokenAmount>;
|
|
10
|
+
unclaimedRewardsOf(user: string): Promise<TokenAmount[]>;
|
|
11
|
+
}
|
|
12
|
+
export declare class StakingReadWrite extends StakingRead {
|
|
13
|
+
stake(amount: TokenAmount): Promise<TransactionResponse>;
|
|
14
|
+
unstake(amount: TokenAmount): Promise<TransactionResponse>;
|
|
15
|
+
}
|
|
16
|
+
export declare class Staking extends BlockchainEntity {
|
|
17
|
+
constructor();
|
|
18
|
+
read(networkConnection: NetworkConnection): StakingRead;
|
|
19
|
+
readWrite(networkConnection: NetworkConnection): StakingReadWrite;
|
|
20
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Staking = exports.StakingReadWrite = exports.StakingRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const abis_1 = require("../abis");
|
|
7
|
+
const consts = tslib_1.__importStar(require("../consts"));
|
|
8
|
+
const entities_1 = require("../entities");
|
|
9
|
+
const helpers_1 = require("../helpers");
|
|
10
|
+
const multicall_1 = require("../helpers/multicall");
|
|
11
|
+
const priceFetcher_1 = require("../helpers/priceFetcher");
|
|
12
|
+
class StakingRead extends entities_1.BlockchainEntityRead {
|
|
13
|
+
constructor(networkConnection) {
|
|
14
|
+
super(networkConnection);
|
|
15
|
+
Object.defineProperty(this, "env", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
this.env = new entities_1.AuriEnv(networkConnection);
|
|
22
|
+
}
|
|
23
|
+
async getPLYWNEARPoolDetails() {
|
|
24
|
+
const { stakedLiquidity, rewardPerSeconds } = await this.env.auriFairLaunch.callStatic
|
|
25
|
+
.getPoolInfo(consts.PLYWNEAR_POOL_ID)
|
|
26
|
+
.then((res) => {
|
|
27
|
+
const endedTime = res.endTime;
|
|
28
|
+
const startTime = res.startTime;
|
|
29
|
+
const now = Date.now() / 1000;
|
|
30
|
+
if (endedTime < now || startTime > now) {
|
|
31
|
+
return {
|
|
32
|
+
stakedLiquidity: res.totalStake,
|
|
33
|
+
rewardPerSeconds: res.rewardPerSeconds.map((_) => ethers_1.BigNumber.from(0)),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return { stakedLiquidity: res.totalStake, rewardPerSeconds: res.rewardPerSeconds };
|
|
37
|
+
});
|
|
38
|
+
let stakedLiquidityAmount = new entities_1.TokenAmount(entities_1.PLYWNEARToken, stakedLiquidity.toString());
|
|
39
|
+
var totalStakeValuation = await (0, priceFetcher_1.fetchValuation)(stakedLiquidityAmount, this._networkConnection.provider);
|
|
40
|
+
var promises = [];
|
|
41
|
+
for (let i = 0; i < rewardPerSeconds.length; i++) {
|
|
42
|
+
let rewardTokenAddress = consts.PLYWNEAR_REWARD_TOKENS[i];
|
|
43
|
+
let rewardToken = new entities_1.Token(rewardTokenAddress, (0, helpers_1.getDecimal)(rewardTokenAddress));
|
|
44
|
+
let rewardPerSecond = rewardPerSeconds[i];
|
|
45
|
+
promises.push((0, priceFetcher_1.fetchValuation)(new entities_1.TokenAmount(rewardToken, rewardPerSecond.toString()), this._networkConnection.provider));
|
|
46
|
+
}
|
|
47
|
+
let APYs = [];
|
|
48
|
+
(await Promise.all(promises)).forEach((rewardPerSecondValuation, i) => {
|
|
49
|
+
let rewardTokenAddress = consts.PLYWNEAR_REWARD_TOKENS[i];
|
|
50
|
+
let apy = (0, helpers_1.calcLMRewardApr)(rewardPerSecondValuation, totalStakeValuation, consts.ONE_DAY * 365).toFixed(consts.DECIMAL_PRECISION);
|
|
51
|
+
APYs.push({
|
|
52
|
+
address: rewardTokenAddress,
|
|
53
|
+
apy: apy,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
totalStakedLiquidity: stakedLiquidityAmount,
|
|
58
|
+
APYs: APYs,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async stakeBalanceOf(user) {
|
|
62
|
+
const userInfo = await this.env.auriFairLaunch.callStatic.getUserInfo(consts.PLYWNEAR_POOL_ID, user);
|
|
63
|
+
return new entities_1.TokenAmount(entities_1.PLYWNEARToken, userInfo.amount.toString());
|
|
64
|
+
}
|
|
65
|
+
async LpBalanceOf(user) {
|
|
66
|
+
let lpContract = (0, multicall_1.createContract)(consts.networkAddresses.tokens.PLYWNEAR, abis_1.EIP20InterfaceABI.abi, this._networkConnection.provider);
|
|
67
|
+
let balance = await lpContract.callStatic.balanceOf(user);
|
|
68
|
+
return new entities_1.TokenAmount(entities_1.PLYWNEARToken, balance.toString());
|
|
69
|
+
}
|
|
70
|
+
async unclaimedRewardsOf(user) {
|
|
71
|
+
let userInfo = await this.env.auriFairLaunch.raw.callStatic.updateAndGetUserInfo(consts.PLYWNEAR_POOL_ID, user, { from: user });
|
|
72
|
+
let rewards = userInfo.unclaimedRewards;
|
|
73
|
+
return rewards.map((reward, i) => entities_1.TokenAmount.fromAddressAndAmount(consts.PLYWNEAR_REWARD_TOKENS[i], reward.toString()));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.StakingRead = StakingRead;
|
|
77
|
+
class StakingReadWrite extends StakingRead {
|
|
78
|
+
async stake(amount) {
|
|
79
|
+
return this.env.auriFairLaunch.raw
|
|
80
|
+
.connect(this._networkConnection.signer)
|
|
81
|
+
.deposit(consts.PLYWNEAR_POOL_ID, amount.rawAmount());
|
|
82
|
+
}
|
|
83
|
+
async unstake(amount) {
|
|
84
|
+
const msgSender = await this._networkConnection.signer.getAddress();
|
|
85
|
+
const amountInput = ethers_1.BigNumber.from(amount.rawAmount());
|
|
86
|
+
const stakedAmount = ethers_1.BigNumber.from((await this.stakeBalanceOf(msgSender)).rawAmount());
|
|
87
|
+
const unstakeAmount = amountInput.lt(stakedAmount) ? amountInput : stakedAmount.sub(1);
|
|
88
|
+
return this.env.auriFairLaunch.raw
|
|
89
|
+
.connect(this._networkConnection.signer)
|
|
90
|
+
.withdraw(consts.PLYWNEAR_POOL_ID, unstakeAmount);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.StakingReadWrite = StakingReadWrite;
|
|
94
|
+
class Staking extends entities_1.BlockchainEntity {
|
|
95
|
+
constructor() {
|
|
96
|
+
super();
|
|
97
|
+
}
|
|
98
|
+
read(networkConnection) {
|
|
99
|
+
return new StakingRead(networkConnection);
|
|
100
|
+
}
|
|
101
|
+
readWrite(networkConnection) {
|
|
102
|
+
return new StakingReadWrite(networkConnection);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.Staking = Staking;
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Rha2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmFjdG9ycy9TdGFraW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxtQ0FBeUM7QUFDekMsa0NBQTRDO0FBQzVDLDBEQUFvQztBQUNwQywwQ0FPcUI7QUFDckIsd0NBQXlEO0FBQ3pELG9EQUFzRDtBQUN0RCwwREFBeUQ7QUFHekQsTUFBYSxXQUFZLFNBQVEsK0JBQW9CO0lBRW5ELFlBQVksaUJBQW9DO1FBQzlDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRlg7Ozs7O1dBQWE7UUFHM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGtCQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLHNCQUFzQjtRQUNqQyxNQUFNLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVO2FBQ25GLFdBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDcEMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDWixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztZQUU5QixJQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUN2QyxPQUFPO29CQUNMLGVBQWUsRUFBRSxHQUFHLENBQUMsVUFBVTtvQkFDL0IsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENB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
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from './Airdrop';
|
|
2
|
-
export * from './MoneyMarket';
|
|
3
|
-
export * from './Papermill';
|
|
4
|
-
export * from './PlyGame';
|
|
5
|
-
export * from './Pulp';
|
|
6
|
-
export * from './Referral';
|
|
7
|
-
export * from './Staking';
|
|
8
|
-
export * from './misc';
|
|
9
|
-
export * from './PlyTokenLock';
|
|
1
|
+
export * from './Airdrop';
|
|
2
|
+
export * from './MoneyMarket';
|
|
3
|
+
export * from './Papermill';
|
|
4
|
+
export * from './PlyGame';
|
|
5
|
+
export * from './Pulp';
|
|
6
|
+
export * from './Referral';
|
|
7
|
+
export * from './Staking';
|
|
8
|
+
export * from './misc';
|
|
9
|
+
export * from './PlyTokenLock';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./Airdrop"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./MoneyMarket"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./Papermill"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./PlyGame"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./Pulp"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./Referral"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./Staking"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./misc"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./PlyTokenLock"), exports);
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJhY3RvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQTBCO0FBQzFCLHdEQUE4QjtBQUM5QixzREFBNEI7QUFDNUIsb0RBQTBCO0FBQzFCLGlEQUF1QjtBQUN2QixxREFBMkI7QUFDM0Isb0RBQTBCO0FBQzFCLGlEQUF1QjtBQUN2Qix5REFBK0IifQ==
|
|
@@ -1,39 +1,31 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
|
-
import { AuriEnv, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
-
import * as types from '../types';
|
|
4
|
-
import { StakingRead } from './Staking';
|
|
5
|
-
export declare class MiscRead extends BlockchainEntityRead {
|
|
6
|
-
readonly env: AuriEnv;
|
|
7
|
-
readonly stakingRead: StakingRead;
|
|
8
|
-
constructor(networkConnection: types.NetworkConnection);
|
|
9
|
-
getUserDetails(userAddress: string): Promise<types.UserDetails>;
|
|
10
|
-
getTokenPrice(token: Token): Promise<types.CurrencyAmount>;
|
|
11
|
-
calcBorrowPower(tokenAmount: TokenAmount): Promise<{
|
|
12
|
-
currency: string;
|
|
13
|
-
amount: string;
|
|
14
|
-
}>;
|
|
15
|
-
calcHypotheticalStats({ userMarketDetail, currentBorrowLimit, currentBorrowValuation, action, tokenAmount, }: {
|
|
16
|
-
userMarketDetail: types.UserMarketDetails;
|
|
17
|
-
currentBorrowLimit: types.CurrencyAmount;
|
|
18
|
-
currentBorrowValuation: types.CurrencyAmount;
|
|
19
|
-
action: types.MarketAction;
|
|
20
|
-
tokenAmount?: TokenAmount;
|
|
21
|
-
}): types.HypotheticalStats;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
sneakAccounts(accounts: string[], tokenAddresses: string[], dust?: BigNumber): Promise<types.AccountAuTokensInfo[]>;
|
|
33
|
-
getLTVAndLiquidationThreshold(userAddr: types.Address): Promise<{
|
|
34
|
-
ltv: BigNumber;
|
|
35
|
-
liquidationThreshold: BigNumber;
|
|
36
|
-
}>;
|
|
37
|
-
getNetApyWithoutIncentive(userAddress: types.Address): Promise<BigNumber>;
|
|
38
|
-
getNetApyWithIncentive(userAddress: types.Address): Promise<BigNumber>;
|
|
39
|
-
}
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
import { AuriEnv, BlockchainEntityRead, Token, TokenAmount } from '../entities';
|
|
3
|
+
import * as types from '../types';
|
|
4
|
+
import { StakingRead } from './Staking';
|
|
5
|
+
export declare class MiscRead extends BlockchainEntityRead {
|
|
6
|
+
readonly env: AuriEnv;
|
|
7
|
+
readonly stakingRead: StakingRead;
|
|
8
|
+
constructor(networkConnection: types.NetworkConnection);
|
|
9
|
+
getUserDetails(userAddress: string): Promise<types.UserDetails>;
|
|
10
|
+
getTokenPrice(token: Token): Promise<types.CurrencyAmount>;
|
|
11
|
+
calcBorrowPower(tokenAmount: TokenAmount): Promise<{
|
|
12
|
+
currency: string;
|
|
13
|
+
amount: string;
|
|
14
|
+
}>;
|
|
15
|
+
calcHypotheticalStats({ userMarketDetail, currentBorrowLimit, currentBorrowValuation, action, tokenAmount, }: {
|
|
16
|
+
userMarketDetail: types.UserMarketDetails;
|
|
17
|
+
currentBorrowLimit: types.CurrencyAmount;
|
|
18
|
+
currentBorrowValuation: types.CurrencyAmount;
|
|
19
|
+
action: types.MarketAction;
|
|
20
|
+
tokenAmount?: TokenAmount;
|
|
21
|
+
}): types.HypotheticalStats;
|
|
22
|
+
getPlyCirculatingSupply(): Promise<TokenAmount>;
|
|
23
|
+
getUtilisation(userAddr: types.Address): Promise<BigNumber>;
|
|
24
|
+
sneakAccounts(accounts: string[], tokenAddresses: string[], dust?: BigNumber): Promise<types.AccountAuTokensInfo[]>;
|
|
25
|
+
getLTVAndLiquidationThreshold(userAddr: types.Address): Promise<{
|
|
26
|
+
ltv: BigNumber;
|
|
27
|
+
liquidationThreshold: BigNumber;
|
|
28
|
+
}>;
|
|
29
|
+
getNetApyWithoutIncentive(userAddress: types.Address): Promise<BigNumber>;
|
|
30
|
+
getNetApyWithIncentive(userAddress: types.Address): Promise<BigNumber>;
|
|
31
|
+
}
|