@triadxyz/triad-protocol 1.3.6-beta → 1.3.8-beta
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/index.d.ts +0 -8
- package/dist/index.js +0 -29
- package/dist/local-test.js +1 -5
- package/dist/stake.d.ts +1 -1
- package/dist/stake.js +5 -27
- package/dist/trade.js +1 -2
- package/dist/types/idl_triad_protocol.json +0 -102
- package/dist/types/triad_protocol.d.ts +0 -102
- package/dist/utils/helpers.d.ts +1 -0
- package/dist/utils/helpers.js +24 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -83,12 +83,4 @@ export default class TriadProtocolClient {
|
|
|
83
83
|
* @param options - RPC options
|
|
84
84
|
*/
|
|
85
85
|
spinWheel(isSol: boolean, options?: RpcOptions): Promise<number>;
|
|
86
|
-
/**
|
|
87
|
-
* Mint Poseidon
|
|
88
|
-
* @param number - Poseidon number
|
|
89
|
-
* @param attributes - Poseidon attributes
|
|
90
|
-
* @param options - RPC options
|
|
91
|
-
*
|
|
92
|
-
*/
|
|
93
|
-
mintPoseidon(items: number[], options?: RpcOptions): Promise<string>;
|
|
94
86
|
}
|
package/dist/index.js
CHANGED
|
@@ -250,34 +250,5 @@ class TriadProtocolClient {
|
|
|
250
250
|
return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber();
|
|
251
251
|
});
|
|
252
252
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Mint Poseidon
|
|
255
|
-
* @param number - Poseidon number
|
|
256
|
-
* @param attributes - Poseidon attributes
|
|
257
|
-
* @param options - RPC options
|
|
258
|
-
*
|
|
259
|
-
*/
|
|
260
|
-
mintPoseidon(items, options) {
|
|
261
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
262
|
-
const assets = [];
|
|
263
|
-
const ixs = [];
|
|
264
|
-
for (const item of items) {
|
|
265
|
-
const asset = web3_js_1.Keypair.generate();
|
|
266
|
-
assets.push(asset);
|
|
267
|
-
ixs.push(yield this.program.methods
|
|
268
|
-
.mintPoseidon({
|
|
269
|
-
collectionSymbol: constants_1.POSEIDON_COLLECTION_SYMBOL,
|
|
270
|
-
number: new anchor_1.BN(item)
|
|
271
|
-
})
|
|
272
|
-
.accounts({
|
|
273
|
-
signer: this.provider.wallet.publicKey,
|
|
274
|
-
asset: asset.publicKey,
|
|
275
|
-
coreCollection: constants_1.POSEIDON_CORE_COLLECTION
|
|
276
|
-
})
|
|
277
|
-
.instruction());
|
|
278
|
-
}
|
|
279
|
-
return (0, sendVersionedTransaction_1.default)(this.provider, ixs, options, undefined, [], undefined, assets);
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
253
|
}
|
|
283
254
|
exports.default = TriadProtocolClient;
|
package/dist/local-test.js
CHANGED
|
@@ -446,11 +446,7 @@ const getSpinPrize = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
446
446
|
console.log(prizes);
|
|
447
447
|
});
|
|
448
448
|
const spinWheel = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
449
|
-
const response = yield triadProtocol.spinWheel(false
|
|
449
|
+
const response = yield triadProtocol.spinWheel(false);
|
|
450
450
|
console.log(response);
|
|
451
451
|
});
|
|
452
452
|
spinWheel();
|
|
453
|
-
const mintPoseidon = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
454
|
-
const response = yield triadProtocol.mintPoseidon([1]);
|
|
455
|
-
console.log(response);
|
|
456
|
-
});
|
package/dist/stake.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class Stake {
|
|
|
15
15
|
/**
|
|
16
16
|
* Get Stake Rewards
|
|
17
17
|
*/
|
|
18
|
-
getStakeRewards({ wallet, nftName, collections
|
|
18
|
+
getStakeRewards({ wallet, nftName, collections }: ClaimStakeRewardsArgs): Promise<number>;
|
|
19
19
|
/**
|
|
20
20
|
* Get all Stakes
|
|
21
21
|
*/
|
package/dist/stake.js
CHANGED
|
@@ -15,9 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
16
16
|
const helpers_1 = require("./utils/helpers");
|
|
17
17
|
const stake_1 = require("./utils/pda/stake");
|
|
18
|
-
const pda_1 = require("./utils/pda");
|
|
19
18
|
const constants_1 = require("./utils/constants");
|
|
20
|
-
const base64_js_1 = require("base64-js");
|
|
21
19
|
const getRarityRank_1 = __importDefault(require("./utils/getRarityRank"));
|
|
22
20
|
const sendVersionedTransaction_1 = __importDefault(require("./utils/sendVersionedTransaction"));
|
|
23
21
|
const sendTransactionWithOptions_1 = __importDefault(require("./utils/sendTransactionWithOptions"));
|
|
@@ -40,25 +38,11 @@ class Stake {
|
|
|
40
38
|
/**
|
|
41
39
|
* Get Stake Rewards
|
|
42
40
|
*/
|
|
43
|
-
getStakeRewards({ wallet, nftName, collections
|
|
41
|
+
getStakeRewards({ wallet, nftName, collections }) {
|
|
44
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const stakeVaultPDA = (0, stake_1.getStakeVaultPDA)(this.program.programId, this.stakeVaultName);
|
|
46
43
|
const stakePDA = (0, stake_1.getStakePDA)(this.program.programId, wallet, nftName);
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
collections,
|
|
50
|
-
rank
|
|
51
|
-
})
|
|
52
|
-
.accounts({
|
|
53
|
-
signer: wallet,
|
|
54
|
-
mint: constants_1.TRD_MINT,
|
|
55
|
-
stake: stakePDA,
|
|
56
|
-
stakeVault: stakeVaultPDA,
|
|
57
|
-
verifier: constants_1.VERIFIER
|
|
58
|
-
})
|
|
59
|
-
.simulate();
|
|
60
|
-
let value = method.raw[method.raw.length - 2].split(' ')[3];
|
|
61
|
-
return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber() / Math.pow(10, constants_1.TRD_DECIMALS);
|
|
44
|
+
const stake = yield this.program.account.stakeV2.fetch(stakePDA);
|
|
45
|
+
return (0, helpers_1.calculateStakeRewards)((0, helpers_1.formatStake)(stake), collections);
|
|
62
46
|
});
|
|
63
47
|
}
|
|
64
48
|
/**
|
|
@@ -121,7 +105,6 @@ class Stake {
|
|
|
121
105
|
*/
|
|
122
106
|
stakeToken({ name, wallet, amount }, options) {
|
|
123
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
const userPDA = (0, pda_1.getUserPDA)(this.program.programId, wallet);
|
|
125
108
|
return (0, sendTransactionWithOptions_1.default)(this.program.methods
|
|
126
109
|
.stakeToken({
|
|
127
110
|
name,
|
|
@@ -130,8 +113,7 @@ class Stake {
|
|
|
130
113
|
})
|
|
131
114
|
.accounts({
|
|
132
115
|
signer: wallet,
|
|
133
|
-
mint: constants_1.TRD_MINT
|
|
134
|
-
user: userPDA
|
|
116
|
+
mint: constants_1.TRD_MINT
|
|
135
117
|
}), options);
|
|
136
118
|
});
|
|
137
119
|
}
|
|
@@ -166,7 +148,6 @@ class Stake {
|
|
|
166
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
167
149
|
const ixs = [];
|
|
168
150
|
const stakeVaultPDA = (0, stake_1.getStakeVaultPDA)(this.program.programId, this.stakeVaultName);
|
|
169
|
-
const userPDA = (0, pda_1.getUserPDA)(this.program.programId, wallet);
|
|
170
151
|
for (const nft of nfts) {
|
|
171
152
|
const stakePDA = (0, stake_1.getStakePDA)(this.program.programId, wallet, nft.name);
|
|
172
153
|
ixs.push(yield this.program.methods
|
|
@@ -174,7 +155,6 @@ class Stake {
|
|
|
174
155
|
.accounts({
|
|
175
156
|
signer: wallet,
|
|
176
157
|
mint: nft.mint,
|
|
177
|
-
user: userPDA,
|
|
178
158
|
stake: stakePDA,
|
|
179
159
|
stakeVault: stakeVaultPDA
|
|
180
160
|
})
|
|
@@ -193,15 +173,13 @@ class Stake {
|
|
|
193
173
|
withdrawStake({ wallet, name, mint }, options) {
|
|
194
174
|
return __awaiter(this, void 0, void 0, function* () {
|
|
195
175
|
const stakeVaultPDA = (0, stake_1.getStakeVaultPDA)(this.program.programId, this.stakeVaultName);
|
|
196
|
-
const userPDA = (0, pda_1.getUserPDA)(this.program.programId, wallet);
|
|
197
176
|
const stakePDA = (0, stake_1.getStakePDA)(this.program.programId, wallet, name);
|
|
198
177
|
return (0, sendTransactionWithOptions_1.default)(this.program.methods.withdrawStake().accounts({
|
|
199
178
|
signer: wallet,
|
|
200
179
|
stake: stakePDA,
|
|
201
180
|
stakeVault: stakeVaultPDA,
|
|
202
181
|
admin: constants_1.TRIAD_ADMIN,
|
|
203
|
-
mint: mint
|
|
204
|
-
user: userPDA
|
|
182
|
+
mint: mint
|
|
205
183
|
}), options);
|
|
206
184
|
});
|
|
207
185
|
}
|
package/dist/trade.js
CHANGED
|
@@ -647,10 +647,6 @@
|
|
|
647
647
|
"writable": true,
|
|
648
648
|
"signer": true
|
|
649
649
|
},
|
|
650
|
-
{
|
|
651
|
-
"name": "user",
|
|
652
|
-
"writable": true
|
|
653
|
-
},
|
|
654
650
|
{
|
|
655
651
|
"name": "user_trade",
|
|
656
652
|
"writable": true,
|
|
@@ -755,76 +751,6 @@
|
|
|
755
751
|
}
|
|
756
752
|
]
|
|
757
753
|
},
|
|
758
|
-
{
|
|
759
|
-
"name": "mint_poseidon",
|
|
760
|
-
"discriminator": [102, 210, 5, 220, 154, 54, 98, 23],
|
|
761
|
-
"accounts": [
|
|
762
|
-
{
|
|
763
|
-
"name": "signer",
|
|
764
|
-
"writable": true,
|
|
765
|
-
"signer": true
|
|
766
|
-
},
|
|
767
|
-
{
|
|
768
|
-
"name": "nft",
|
|
769
|
-
"writable": true,
|
|
770
|
-
"pda": {
|
|
771
|
-
"seeds": [
|
|
772
|
-
{
|
|
773
|
-
"kind": "const",
|
|
774
|
-
"value": [112, 111, 115, 101, 105, 100, 111, 110]
|
|
775
|
-
},
|
|
776
|
-
{
|
|
777
|
-
"kind": "arg",
|
|
778
|
-
"path": "args.number"
|
|
779
|
-
}
|
|
780
|
-
]
|
|
781
|
-
}
|
|
782
|
-
},
|
|
783
|
-
{
|
|
784
|
-
"name": "asset",
|
|
785
|
-
"writable": true,
|
|
786
|
-
"signer": true
|
|
787
|
-
},
|
|
788
|
-
{
|
|
789
|
-
"name": "collection",
|
|
790
|
-
"writable": true,
|
|
791
|
-
"pda": {
|
|
792
|
-
"seeds": [
|
|
793
|
-
{
|
|
794
|
-
"kind": "const",
|
|
795
|
-
"value": [99, 111, 108, 108, 101, 99, 116, 105, 111, 110]
|
|
796
|
-
},
|
|
797
|
-
{
|
|
798
|
-
"kind": "arg",
|
|
799
|
-
"path": "args.collection_symbol"
|
|
800
|
-
}
|
|
801
|
-
]
|
|
802
|
-
}
|
|
803
|
-
},
|
|
804
|
-
{
|
|
805
|
-
"name": "core_collection",
|
|
806
|
-
"writable": true
|
|
807
|
-
},
|
|
808
|
-
{
|
|
809
|
-
"name": "metaplex_program",
|
|
810
|
-
"address": "CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d"
|
|
811
|
-
},
|
|
812
|
-
{
|
|
813
|
-
"name": "system_program",
|
|
814
|
-
"address": "11111111111111111111111111111111"
|
|
815
|
-
}
|
|
816
|
-
],
|
|
817
|
-
"args": [
|
|
818
|
-
{
|
|
819
|
-
"name": "args",
|
|
820
|
-
"type": {
|
|
821
|
-
"defined": {
|
|
822
|
-
"name": "MintPoseidonArgs"
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
]
|
|
827
|
-
},
|
|
828
754
|
{
|
|
829
755
|
"name": "mint_ticket",
|
|
830
756
|
"discriminator": [159, 167, 223, 60, 138, 6, 23, 29],
|
|
@@ -1159,10 +1085,6 @@
|
|
|
1159
1085
|
"name": "stake_vault",
|
|
1160
1086
|
"writable": true
|
|
1161
1087
|
},
|
|
1162
|
-
{
|
|
1163
|
-
"name": "user",
|
|
1164
|
-
"writable": true
|
|
1165
|
-
},
|
|
1166
1088
|
{
|
|
1167
1089
|
"name": "stake",
|
|
1168
1090
|
"writable": true
|
|
@@ -1436,10 +1358,6 @@
|
|
|
1436
1358
|
]
|
|
1437
1359
|
}
|
|
1438
1360
|
},
|
|
1439
|
-
{
|
|
1440
|
-
"name": "user",
|
|
1441
|
-
"writable": true
|
|
1442
|
-
},
|
|
1443
1361
|
{
|
|
1444
1362
|
"name": "stake",
|
|
1445
1363
|
"writable": true,
|
|
@@ -1666,10 +1584,6 @@
|
|
|
1666
1584
|
"name": "stake_vault",
|
|
1667
1585
|
"writable": true
|
|
1668
1586
|
},
|
|
1669
|
-
{
|
|
1670
|
-
"name": "user",
|
|
1671
|
-
"writable": true
|
|
1672
|
-
},
|
|
1673
1587
|
{
|
|
1674
1588
|
"name": "stake",
|
|
1675
1589
|
"writable": true
|
|
@@ -2522,22 +2436,6 @@
|
|
|
2522
2436
|
]
|
|
2523
2437
|
}
|
|
2524
2438
|
},
|
|
2525
|
-
{
|
|
2526
|
-
"name": "MintPoseidonArgs",
|
|
2527
|
-
"type": {
|
|
2528
|
-
"kind": "struct",
|
|
2529
|
-
"fields": [
|
|
2530
|
-
{
|
|
2531
|
-
"name": "collection_symbol",
|
|
2532
|
-
"type": "string"
|
|
2533
|
-
},
|
|
2534
|
-
{
|
|
2535
|
-
"name": "number",
|
|
2536
|
-
"type": "u64"
|
|
2537
|
-
}
|
|
2538
|
-
]
|
|
2539
|
-
}
|
|
2540
|
-
},
|
|
2541
2439
|
{
|
|
2542
2440
|
"name": "MintTicketArgs",
|
|
2543
2441
|
"type": {
|
|
@@ -943,10 +943,6 @@ export type TriadProtocol = {
|
|
|
943
943
|
writable: true;
|
|
944
944
|
signer: true;
|
|
945
945
|
},
|
|
946
|
-
{
|
|
947
|
-
name: 'user';
|
|
948
|
-
writable: true;
|
|
949
|
-
},
|
|
950
946
|
{
|
|
951
947
|
name: 'userTrade';
|
|
952
948
|
writable: true;
|
|
@@ -1080,76 +1076,6 @@ export type TriadProtocol = {
|
|
|
1080
1076
|
}
|
|
1081
1077
|
];
|
|
1082
1078
|
},
|
|
1083
|
-
{
|
|
1084
|
-
name: 'mintPoseidon';
|
|
1085
|
-
discriminator: [102, 210, 5, 220, 154, 54, 98, 23];
|
|
1086
|
-
accounts: [
|
|
1087
|
-
{
|
|
1088
|
-
name: 'signer';
|
|
1089
|
-
writable: true;
|
|
1090
|
-
signer: true;
|
|
1091
|
-
},
|
|
1092
|
-
{
|
|
1093
|
-
name: 'nft';
|
|
1094
|
-
writable: true;
|
|
1095
|
-
pda: {
|
|
1096
|
-
seeds: [
|
|
1097
|
-
{
|
|
1098
|
-
kind: 'const';
|
|
1099
|
-
value: [112, 111, 115, 101, 105, 100, 111, 110];
|
|
1100
|
-
},
|
|
1101
|
-
{
|
|
1102
|
-
kind: 'arg';
|
|
1103
|
-
path: 'args.number';
|
|
1104
|
-
}
|
|
1105
|
-
];
|
|
1106
|
-
};
|
|
1107
|
-
},
|
|
1108
|
-
{
|
|
1109
|
-
name: 'asset';
|
|
1110
|
-
writable: true;
|
|
1111
|
-
signer: true;
|
|
1112
|
-
},
|
|
1113
|
-
{
|
|
1114
|
-
name: 'collection';
|
|
1115
|
-
writable: true;
|
|
1116
|
-
pda: {
|
|
1117
|
-
seeds: [
|
|
1118
|
-
{
|
|
1119
|
-
kind: 'const';
|
|
1120
|
-
value: [99, 111, 108, 108, 101, 99, 116, 105, 111, 110];
|
|
1121
|
-
},
|
|
1122
|
-
{
|
|
1123
|
-
kind: 'arg';
|
|
1124
|
-
path: 'args.collection_symbol';
|
|
1125
|
-
}
|
|
1126
|
-
];
|
|
1127
|
-
};
|
|
1128
|
-
},
|
|
1129
|
-
{
|
|
1130
|
-
name: 'coreCollection';
|
|
1131
|
-
writable: true;
|
|
1132
|
-
},
|
|
1133
|
-
{
|
|
1134
|
-
name: 'metaplexProgram';
|
|
1135
|
-
address: 'CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d';
|
|
1136
|
-
},
|
|
1137
|
-
{
|
|
1138
|
-
name: 'systemProgram';
|
|
1139
|
-
address: '11111111111111111111111111111111';
|
|
1140
|
-
}
|
|
1141
|
-
];
|
|
1142
|
-
args: [
|
|
1143
|
-
{
|
|
1144
|
-
name: 'args';
|
|
1145
|
-
type: {
|
|
1146
|
-
defined: {
|
|
1147
|
-
name: 'mintPoseidonArgs';
|
|
1148
|
-
};
|
|
1149
|
-
};
|
|
1150
|
-
}
|
|
1151
|
-
];
|
|
1152
|
-
},
|
|
1153
1079
|
{
|
|
1154
1080
|
name: 'mintTicket';
|
|
1155
1081
|
discriminator: [159, 167, 223, 60, 138, 6, 23, 29];
|
|
@@ -1629,10 +1555,6 @@ export type TriadProtocol = {
|
|
|
1629
1555
|
name: 'stakeVault';
|
|
1630
1556
|
writable: true;
|
|
1631
1557
|
},
|
|
1632
|
-
{
|
|
1633
|
-
name: 'user';
|
|
1634
|
-
writable: true;
|
|
1635
|
-
},
|
|
1636
1558
|
{
|
|
1637
1559
|
name: 'stake';
|
|
1638
1560
|
writable: true;
|
|
@@ -2022,10 +1944,6 @@ export type TriadProtocol = {
|
|
|
2022
1944
|
];
|
|
2023
1945
|
};
|
|
2024
1946
|
},
|
|
2025
|
-
{
|
|
2026
|
-
name: 'user';
|
|
2027
|
-
writable: true;
|
|
2028
|
-
},
|
|
2029
1947
|
{
|
|
2030
1948
|
name: 'stake';
|
|
2031
1949
|
writable: true;
|
|
@@ -2368,10 +2286,6 @@ export type TriadProtocol = {
|
|
|
2368
2286
|
name: 'stakeVault';
|
|
2369
2287
|
writable: true;
|
|
2370
2288
|
},
|
|
2371
|
-
{
|
|
2372
|
-
name: 'user';
|
|
2373
|
-
writable: true;
|
|
2374
|
-
},
|
|
2375
2289
|
{
|
|
2376
2290
|
name: 'stake';
|
|
2377
2291
|
writable: true;
|
|
@@ -3278,22 +3192,6 @@ export type TriadProtocol = {
|
|
|
3278
3192
|
];
|
|
3279
3193
|
};
|
|
3280
3194
|
},
|
|
3281
|
-
{
|
|
3282
|
-
name: 'mintPoseidonArgs';
|
|
3283
|
-
type: {
|
|
3284
|
-
kind: 'struct';
|
|
3285
|
-
fields: [
|
|
3286
|
-
{
|
|
3287
|
-
name: 'collectionSymbol';
|
|
3288
|
-
type: 'string';
|
|
3289
|
-
},
|
|
3290
|
-
{
|
|
3291
|
-
name: 'number';
|
|
3292
|
-
type: 'u64';
|
|
3293
|
-
}
|
|
3294
|
-
];
|
|
3295
|
-
};
|
|
3296
|
-
},
|
|
3297
3195
|
{
|
|
3298
3196
|
name: 'mintTicketArgs';
|
|
3299
3197
|
type: {
|
package/dist/utils/helpers.d.ts
CHANGED
|
@@ -9,3 +9,4 @@ export declare const formatStake: (stake: any) => Stake;
|
|
|
9
9
|
export declare const formatUser: (user: any) => User;
|
|
10
10
|
export declare const formatMarket: (account: any, address: PublicKey) => Market;
|
|
11
11
|
export declare const accountToMarketV1: (account: any, address: PublicKey) => Market;
|
|
12
|
+
export declare const calculateStakeRewards: (stake: Stake, collections: number) => number;
|
package/dist/utils/helpers.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.accountToMarketV1 = exports.formatMarket = exports.formatUser = exports.formatStake = exports.formatStakeVault = exports.decodeString = exports.encodeString = void 0;
|
|
3
|
+
exports.calculateStakeRewards = exports.accountToMarketV1 = exports.formatMarket = exports.formatUser = exports.formatStake = exports.formatStakeVault = exports.decodeString = exports.encodeString = void 0;
|
|
4
4
|
const trade_1 = require("../types/trade");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
5
6
|
const encodeString = (value, alloc = 32) => {
|
|
6
7
|
const buffer = Buffer.alloc(alloc, 32);
|
|
7
8
|
buffer.write(value);
|
|
@@ -125,3 +126,25 @@ const accountToMarketV1 = (account, address) => {
|
|
|
125
126
|
};
|
|
126
127
|
};
|
|
127
128
|
exports.accountToMarketV1 = accountToMarketV1;
|
|
129
|
+
const calculateStakeRewards = (stake, collections) => {
|
|
130
|
+
if (stake.withdrawTs !== 0)
|
|
131
|
+
return 0;
|
|
132
|
+
if (collections > 3)
|
|
133
|
+
return 0;
|
|
134
|
+
const collectionsMultiplier = collections * 150;
|
|
135
|
+
const maxRank = 1633;
|
|
136
|
+
const rank = 963;
|
|
137
|
+
const rankWeight = (maxRank - rank + 1) / maxRank;
|
|
138
|
+
const userStakedAmount = stake.mint === constants_1.TRD_MINT.toBase58()
|
|
139
|
+
? stake.amount
|
|
140
|
+
: stake.amount * 10000 * Math.pow(10, constants_1.TRD_DECIMALS);
|
|
141
|
+
const formattedAmount = userStakedAmount / Math.pow(10, constants_1.TRD_DECIMALS) + collectionsMultiplier;
|
|
142
|
+
const adjustedAmount = formattedAmount * rankWeight;
|
|
143
|
+
const lastClaim = stake.claimedTs === 0 ? stake.initTs : stake.claimedTs;
|
|
144
|
+
const currentTime = Math.floor(Date.now() / 1000);
|
|
145
|
+
const secondsStaked = currentTime - lastClaim;
|
|
146
|
+
const userBaseRewards = ((adjustedAmount / 10000) * secondsStaked) / 86400;
|
|
147
|
+
const rewards = userBaseRewards * Math.pow(10, constants_1.TRD_DECIMALS);
|
|
148
|
+
return (rewards + stake.available) / Math.pow(10, constants_1.TRD_DECIMALS);
|
|
149
|
+
};
|
|
150
|
+
exports.calculateStakeRewards = calculateStakeRewards;
|