@triadxyz/triad-protocol 0.5.0-beta → 0.5.2-beta.devnet
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 +1 -4
- package/dist/index.js +0 -107
- package/dist/stake.d.ts +13 -46
- package/dist/stake.js +26 -104
- package/dist/test.js +7 -57
- package/dist/ticker.d.ts +1 -12
- package/dist/ticker.js +2 -36
- package/dist/types/idl_triad_protocol.json +521 -491
- package/dist/types/stake.d.ts +0 -17
- package/dist/types/triad_protocol.d.ts +594 -507
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +2 -2
- package/dist/vault.d.ts +0 -31
- package/dist/vault.js +0 -143
- package/package.json +1 -1
- package/dist/utils/stake-season-1/rarity.json +0 -8832
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { TriadProtocol } from './types/triad_protocol';
|
|
|
4
4
|
import Ticker from './ticker';
|
|
5
5
|
import Vault from './vault';
|
|
6
6
|
import Stake from './stake';
|
|
7
|
-
import { CreateUserArgs,
|
|
7
|
+
import { CreateUserArgs, RpcOptions } from './types';
|
|
8
8
|
export default class TriadProtocolClient {
|
|
9
9
|
program: Program<TriadProtocol>;
|
|
10
10
|
provider: AnchorProvider;
|
|
@@ -32,7 +32,6 @@ export default class TriadProtocolClient {
|
|
|
32
32
|
* @param name - User name
|
|
33
33
|
*/
|
|
34
34
|
getRefferal: (name: string) => Promise<PublicKey | "">;
|
|
35
|
-
getUserPositions: (userWallet: PublicKey) => Promise<{}[]>;
|
|
36
35
|
/**
|
|
37
36
|
* Create User
|
|
38
37
|
* @param wallet - User wallet
|
|
@@ -41,6 +40,4 @@ export default class TriadProtocolClient {
|
|
|
41
40
|
*
|
|
42
41
|
*/
|
|
43
42
|
createUser: ({ wallet, name, referral }: CreateUserArgs, options?: RpcOptions) => Promise<string>;
|
|
44
|
-
openOre: ({ user, payer, name, referralName }: OpenOreArgs, options?: RpcOptions) => Promise<string>;
|
|
45
|
-
mineOre: ({ user, payer, bus, digest, nonce }: MineOreArgs, options?: RpcOptions) => Promise<string>;
|
|
46
43
|
}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,6 @@ const ticker_1 = __importDefault(require("./ticker"));
|
|
|
19
19
|
const vault_1 = __importDefault(require("./vault"));
|
|
20
20
|
const helpers_1 = require("./utils/helpers");
|
|
21
21
|
const stake_1 = __importDefault(require("./stake"));
|
|
22
|
-
const constants_1 = require("./utils/constants");
|
|
23
22
|
class TriadProtocolClient {
|
|
24
23
|
constructor(connection, wallet) {
|
|
25
24
|
/**
|
|
@@ -68,27 +67,6 @@ class TriadProtocolClient {
|
|
|
68
67
|
return '';
|
|
69
68
|
}
|
|
70
69
|
});
|
|
71
|
-
this.getUserPositions = (userWallet) => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const tickers = yield this.ticker.getTickers();
|
|
73
|
-
const positions = yield Promise.all(tickers
|
|
74
|
-
.map((ticker) => __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
let data = {};
|
|
76
|
-
try {
|
|
77
|
-
const UserPositionPDA = (0, helpers_1.getUserPositionAddressSync)(this.program.programId, userWallet, ticker.publicKey);
|
|
78
|
-
const position = yield this.program.account.userPosition.fetch(UserPositionPDA);
|
|
79
|
-
data = {
|
|
80
|
-
ticker,
|
|
81
|
-
position
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
catch (_c) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
return data;
|
|
88
|
-
}))
|
|
89
|
-
.filter(Boolean));
|
|
90
|
-
return positions;
|
|
91
|
-
});
|
|
92
70
|
/**
|
|
93
71
|
* Create User
|
|
94
72
|
* @param wallet - User wallet
|
|
@@ -115,91 +93,6 @@ class TriadProtocolClient {
|
|
|
115
93
|
}
|
|
116
94
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
117
95
|
};
|
|
118
|
-
this.openOre = ({ user, payer, name, referralName }, options) => __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, user);
|
|
120
|
-
const ixs = [];
|
|
121
|
-
try {
|
|
122
|
-
yield this.program.account.user.fetch(userPDA);
|
|
123
|
-
}
|
|
124
|
-
catch (_d) {
|
|
125
|
-
const referral = yield this.getRefferal(referralName);
|
|
126
|
-
ixs.push(yield this.program.methods
|
|
127
|
-
.createUser({
|
|
128
|
-
name
|
|
129
|
-
})
|
|
130
|
-
.accounts({
|
|
131
|
-
signer: user,
|
|
132
|
-
payer: payer.publicKey,
|
|
133
|
-
referral
|
|
134
|
-
})
|
|
135
|
-
.instruction());
|
|
136
|
-
}
|
|
137
|
-
const proofInfoPDA = (0, helpers_1.getProofOreAddressSync)(userPDA);
|
|
138
|
-
ixs.push(yield this.program.methods
|
|
139
|
-
.openOre()
|
|
140
|
-
.accounts({
|
|
141
|
-
signer: user,
|
|
142
|
-
payer: payer.publicKey,
|
|
143
|
-
minerInfo: userPDA,
|
|
144
|
-
proofInfo: proofInfoPDA,
|
|
145
|
-
sysvarHashesInfo: new web3_js_1.PublicKey('SysvarS1otHashes111111111111111111111111111'),
|
|
146
|
-
oreProgram: new web3_js_1.PublicKey(constants_1.ORE_PROGRAM_ID)
|
|
147
|
-
})
|
|
148
|
-
.instruction());
|
|
149
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
150
|
-
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
151
|
-
microLamports: options.microLamports
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
155
|
-
return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
|
|
156
|
-
instructions: ixs,
|
|
157
|
-
recentBlockhash: blockhash,
|
|
158
|
-
payerKey: payer.publicKey
|
|
159
|
-
}).compileToV0Message()), [payer], {
|
|
160
|
-
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
161
|
-
commitment: 'confirmed'
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
this.mineOre = ({ user, payer, bus, digest, nonce }, options) => __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, user);
|
|
166
|
-
const proofInfoPDA = (0, helpers_1.getProofOreAddressSync)(userPDA);
|
|
167
|
-
const ixs = [];
|
|
168
|
-
ixs.push(new web3_js_1.TransactionInstruction({
|
|
169
|
-
keys: [],
|
|
170
|
-
programId: new web3_js_1.PublicKey(constants_1.NOOP_PROGRAM_ID),
|
|
171
|
-
data: Buffer.from(proofInfoPDA.toBytes())
|
|
172
|
-
}));
|
|
173
|
-
ixs.push(yield this.program.methods
|
|
174
|
-
.mineOre({
|
|
175
|
-
digest,
|
|
176
|
-
nonce
|
|
177
|
-
})
|
|
178
|
-
.accounts({
|
|
179
|
-
signer: user,
|
|
180
|
-
bus,
|
|
181
|
-
configProgram: (0, helpers_1.configOreProgramAddressSync)(),
|
|
182
|
-
proofInfo: proofInfoPDA,
|
|
183
|
-
sysvarHashesInfo: new web3_js_1.PublicKey('SysvarS1otHashes111111111111111111111111111'),
|
|
184
|
-
sysvarInstructionsInfo: new web3_js_1.PublicKey('Sysvar1nstructions1111111111111111111111111'),
|
|
185
|
-
oreProgram: new web3_js_1.PublicKey(constants_1.ORE_PROGRAM_ID)
|
|
186
|
-
})
|
|
187
|
-
.instruction());
|
|
188
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
189
|
-
ixs.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
190
|
-
microLamports: options.microLamports
|
|
191
|
-
}));
|
|
192
|
-
}
|
|
193
|
-
const { blockhash } = yield this.provider.connection.getLatestBlockhash();
|
|
194
|
-
return this.provider.sendAndConfirm(new web3_js_1.VersionedTransaction(new web3_js_1.TransactionMessage({
|
|
195
|
-
instructions: ixs,
|
|
196
|
-
recentBlockhash: blockhash,
|
|
197
|
-
payerKey: payer
|
|
198
|
-
}).compileToV0Message()), [], {
|
|
199
|
-
skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight,
|
|
200
|
-
commitment: 'confirmed'
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
96
|
this.provider = new anchor_1.AnchorProvider(connection, wallet, anchor_1.AnchorProvider.defaultOptions());
|
|
204
97
|
this.program = new anchor_1.Program(idl_triad_protocol_json_1.default, this.provider);
|
|
205
98
|
this.ticker = new ticker_1.default(this.program, this.provider);
|
package/dist/stake.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ import { AnchorProvider, Program } from '@coral-xyz/anchor';
|
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { TriadProtocol } from './types/triad_protocol';
|
|
5
5
|
import { RpcOptions } from './types';
|
|
6
|
-
import { DepositStakeRewardsArgs,
|
|
6
|
+
import { DepositStakeRewardsArgs, StakeNftArgs, RequestWithdrawArgs, WithdrawArgs, StakeResponse, ClaimStakeRewardsArgs, StakeTokenArgs, UpdateBoostArgs } from './types/stake';
|
|
7
7
|
export default class Stake {
|
|
8
8
|
program: Program<TriadProtocol>;
|
|
9
9
|
provider: AnchorProvider;
|
|
10
|
+
stakeVaultName: string;
|
|
10
11
|
constructor(program: Program<TriadProtocol>, provider: AnchorProvider);
|
|
11
12
|
/**
|
|
12
13
|
* Get all Stake Vaults
|
|
@@ -15,44 +16,31 @@ export default class Stake {
|
|
|
15
16
|
/**
|
|
16
17
|
* Get Stake Rewards
|
|
17
18
|
*/
|
|
18
|
-
getStakeRewards({ wallet,
|
|
19
|
-
|
|
20
|
-
* Get Stake Vault by name
|
|
21
|
-
* @param stakeVault - Stake Vault name
|
|
22
|
-
*/
|
|
23
|
-
getStakeVaultByName(stakeVault: string): Promise<import("./types/stake").StakeVaultResponse>;
|
|
24
|
-
/**
|
|
25
|
-
* Get all stakes by vault
|
|
26
|
-
* @param stakeVault - Stake Vault name
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
getStakes(stakeVault: string): Promise<StakeResponse[]>;
|
|
19
|
+
getStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs): Promise<number>;
|
|
20
|
+
getStakes(): Promise<StakeResponse[]>;
|
|
30
21
|
/**
|
|
31
22
|
* Get Stake by wallet
|
|
32
23
|
* @param wallet - User wallet
|
|
33
|
-
* @param stakeVault - Stake Vault name
|
|
34
24
|
* @param collections - NFT collections
|
|
35
25
|
*
|
|
36
26
|
*/
|
|
37
|
-
getStakeByWallet(wallet: PublicKey,
|
|
27
|
+
getStakeByWallet(wallet: PublicKey, collections: number, ranks: {
|
|
38
28
|
onchainId: string;
|
|
39
29
|
name: string;
|
|
40
30
|
rarityRankHrtt: number;
|
|
41
31
|
}[]): Promise<StakeResponse[]>;
|
|
42
32
|
/**
|
|
43
33
|
* Get Stakes by day
|
|
44
|
-
* @param stakeVault - Stake Vault name
|
|
45
34
|
* @param day - Day timestamp
|
|
46
35
|
*/
|
|
47
|
-
getStakesByDay(
|
|
36
|
+
getStakesByDay(day: number): Promise<StakeResponse[]>;
|
|
48
37
|
/**
|
|
49
38
|
* Stake NFT
|
|
50
39
|
* @param mint - NFT mint
|
|
51
|
-
* @param stakeVault - Name of the stake vault
|
|
52
40
|
* @param items - NFT items
|
|
53
41
|
*
|
|
54
42
|
*/
|
|
55
|
-
stakeNft({ wallet,
|
|
43
|
+
stakeNft({ wallet, items }: StakeNftArgs, options?: RpcOptions): Promise<string>;
|
|
56
44
|
/**
|
|
57
45
|
* Stake NFT
|
|
58
46
|
* @param wallet - User wallet
|
|
@@ -61,15 +49,7 @@ export default class Stake {
|
|
|
61
49
|
* @param rarity - NFT rarity
|
|
62
50
|
*
|
|
63
51
|
*/
|
|
64
|
-
stakeToken({ name, wallet,
|
|
65
|
-
/**
|
|
66
|
-
* Initialize Stake Vault
|
|
67
|
-
* @param name - The ticker's name
|
|
68
|
-
* @param slots - Amount available to users joining the vault
|
|
69
|
-
* @param collection - The Collection name
|
|
70
|
-
*
|
|
71
|
-
*/
|
|
72
|
-
initializeStakeVault({ name, slots, collection, amount }: InitializeStakeArgs, options?: RpcOptions): Promise<string>;
|
|
52
|
+
stakeToken({ name, wallet, amount }: StakeTokenArgs, options?: RpcOptions): Promise<string>;
|
|
73
53
|
/**
|
|
74
54
|
* Deposit Stake Rewards
|
|
75
55
|
* @param wallet - User wallet
|
|
@@ -77,48 +57,35 @@ export default class Stake {
|
|
|
77
57
|
* @param amount - Reward amount
|
|
78
58
|
*
|
|
79
59
|
*/
|
|
80
|
-
depositStakeRewards({ wallet, mint, amount
|
|
60
|
+
depositStakeRewards({ wallet, mint, amount }: DepositStakeRewardsArgs, options?: RpcOptions): Promise<string>;
|
|
81
61
|
/**
|
|
82
62
|
* Request Withdraw
|
|
83
63
|
* @param wallet - User wallet
|
|
84
64
|
* @param name - Stake name
|
|
85
|
-
* @param stakeVault - Name of the stake vault
|
|
86
65
|
*
|
|
87
66
|
*/
|
|
88
|
-
requestWithdraw({ wallet, name, mint
|
|
67
|
+
requestWithdraw({ wallet, name, mint }: RequestWithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
89
68
|
/**
|
|
90
69
|
* Withdraw Stake
|
|
91
70
|
* @param wallet - User wallet
|
|
92
71
|
* @param name - Stake name
|
|
93
72
|
* @param mint - NFT mint
|
|
94
|
-
* @param stakeVault - Name of the stake vault
|
|
95
|
-
*
|
|
96
|
-
*/
|
|
97
|
-
withdrawStake({ wallet, name, mint, stakeVault }: WithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
98
|
-
/**
|
|
99
|
-
* Update Stake Vault Status
|
|
100
|
-
* @param wallet - User wallet
|
|
101
|
-
* @param stakeVault - Name of the stake vault
|
|
102
|
-
* @param isLocked - Status of the stake vault
|
|
103
|
-
* @param week - Current week rewards (Starts from 0)
|
|
104
73
|
*
|
|
105
74
|
*/
|
|
106
|
-
|
|
75
|
+
withdrawStake({ wallet, name, mint }: WithdrawArgs, options?: RpcOptions): Promise<string>;
|
|
107
76
|
/**
|
|
108
77
|
* Claim Stake Rewards
|
|
109
78
|
* @param wallet - User wallet
|
|
110
79
|
* @param mint - NFT mint
|
|
111
|
-
* @param stakeVault - Name of the stake vault
|
|
112
80
|
* @param nftName - Name of the nft
|
|
113
81
|
*
|
|
114
82
|
*/
|
|
115
|
-
claimStakeRewards({ wallet,
|
|
83
|
+
claimStakeRewards({ wallet, nftName, collections, rank }: ClaimStakeRewardsArgs, options?: RpcOptions): Promise<import("@solana/web3.js").Transaction>;
|
|
116
84
|
/**
|
|
117
85
|
* Update Stake Boost
|
|
118
86
|
* @param wallet - User wallet
|
|
119
87
|
* @param nftName - Name of the nft
|
|
120
|
-
* @param boost - Boost value
|
|
121
88
|
*
|
|
122
89
|
*/
|
|
123
|
-
updateBoost({ wallet, nfts
|
|
90
|
+
updateBoost({ wallet, nfts }: UpdateBoostArgs, options?: RpcOptions): Promise<string>;
|
|
124
91
|
}
|
package/dist/stake.js
CHANGED
|
@@ -17,6 +17,7 @@ const base64_js_1 = require("base64-js");
|
|
|
17
17
|
const getRarity_1 = require("./utils/getRarity");
|
|
18
18
|
class Stake {
|
|
19
19
|
constructor(program, provider) {
|
|
20
|
+
this.stakeVaultName = constants_1.STAKE_VAULT_NAME;
|
|
20
21
|
this.provider = provider;
|
|
21
22
|
this.program = program;
|
|
22
23
|
}
|
|
@@ -32,9 +33,9 @@ class Stake {
|
|
|
32
33
|
/**
|
|
33
34
|
* Get Stake Rewards
|
|
34
35
|
*/
|
|
35
|
-
getStakeRewards({ wallet,
|
|
36
|
+
getStakeRewards({ wallet, nftName, collections, rank }) {
|
|
36
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
38
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
38
39
|
const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
39
40
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
40
41
|
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
@@ -58,25 +59,10 @@ class Stake {
|
|
|
58
59
|
return new anchor_1.BN((0, base64_js_1.toByteArray)(value), 'le').toNumber() / Math.pow(10, constants_1.TTRIAD_DECIMALS);
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
* Get Stake Vault by name
|
|
63
|
-
* @param stakeVault - Stake Vault name
|
|
64
|
-
*/
|
|
65
|
-
getStakeVaultByName(stakeVault) {
|
|
66
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
68
|
-
return (0, helpers_1.formatStakeVault)(yield this.program.account.stakeVault.fetch(StakeVault));
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Get all stakes by vault
|
|
73
|
-
* @param stakeVault - Stake Vault name
|
|
74
|
-
*
|
|
75
|
-
*/
|
|
76
|
-
getStakes(stakeVault) {
|
|
62
|
+
getStakes() {
|
|
77
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
64
|
const response = yield this.program.account.stakeV2.all();
|
|
79
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
65
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
80
66
|
return response
|
|
81
67
|
.filter((item) => item.account.stakeVault.toBase58() === StakeVault.toBase58())
|
|
82
68
|
.map((stake) => (0, helpers_1.formatStake)(stake.account));
|
|
@@ -85,13 +71,12 @@ class Stake {
|
|
|
85
71
|
/**
|
|
86
72
|
* Get Stake by wallet
|
|
87
73
|
* @param wallet - User wallet
|
|
88
|
-
* @param stakeVault - Stake Vault name
|
|
89
74
|
* @param collections - NFT collections
|
|
90
75
|
*
|
|
91
76
|
*/
|
|
92
|
-
getStakeByWallet(wallet,
|
|
77
|
+
getStakeByWallet(wallet, collections, ranks) {
|
|
93
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const response = (yield this.getStakes(
|
|
79
|
+
const response = (yield this.getStakes()).filter((item) => item.authority === wallet.toBase58());
|
|
95
80
|
const data = [];
|
|
96
81
|
for (const stake of response) {
|
|
97
82
|
const getRank = (0, getRarity_1.getRarityRank)(ranks, stake.mint, stake.name);
|
|
@@ -100,7 +85,6 @@ class Stake {
|
|
|
100
85
|
available = yield this.getStakeRewards({
|
|
101
86
|
wallet,
|
|
102
87
|
nftName: stake.name,
|
|
103
|
-
stakeVault,
|
|
104
88
|
rank: getRank,
|
|
105
89
|
collections
|
|
106
90
|
});
|
|
@@ -114,12 +98,11 @@ class Stake {
|
|
|
114
98
|
}
|
|
115
99
|
/**
|
|
116
100
|
* Get Stakes by day
|
|
117
|
-
* @param stakeVault - Stake Vault name
|
|
118
101
|
* @param day - Day timestamp
|
|
119
102
|
*/
|
|
120
|
-
getStakesByDay(
|
|
103
|
+
getStakesByDay(day) {
|
|
121
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
-
const stakes = yield this.getStakes(
|
|
105
|
+
const stakes = yield this.getStakes();
|
|
123
106
|
const rewards = [];
|
|
124
107
|
stakes.forEach((stake) => {
|
|
125
108
|
const date = stake.initTs * 1000;
|
|
@@ -135,14 +118,13 @@ class Stake {
|
|
|
135
118
|
/**
|
|
136
119
|
* Stake NFT
|
|
137
120
|
* @param mint - NFT mint
|
|
138
|
-
* @param stakeVault - Name of the stake vault
|
|
139
121
|
* @param items - NFT items
|
|
140
122
|
*
|
|
141
123
|
*/
|
|
142
|
-
stakeNft({ wallet,
|
|
124
|
+
stakeNft({ wallet, items }, options) {
|
|
143
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
144
126
|
let ixs = [];
|
|
145
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
127
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
146
128
|
for (let i = 0; i < items.length; i++) {
|
|
147
129
|
let item = items[i];
|
|
148
130
|
const FromAta = (0, helpers_1.getATASync)(wallet, item.mint);
|
|
@@ -150,7 +132,7 @@ class Stake {
|
|
|
150
132
|
ixs.push(yield this.program.methods
|
|
151
133
|
.stakeNft({
|
|
152
134
|
name: item.name,
|
|
153
|
-
stakeVault
|
|
135
|
+
stakeVault: this.stakeVaultName
|
|
154
136
|
})
|
|
155
137
|
.accounts({
|
|
156
138
|
signer: wallet,
|
|
@@ -186,9 +168,9 @@ class Stake {
|
|
|
186
168
|
* @param rarity - NFT rarity
|
|
187
169
|
*
|
|
188
170
|
*/
|
|
189
|
-
stakeToken({ name, wallet,
|
|
171
|
+
stakeToken({ name, wallet, amount }, options) {
|
|
190
172
|
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
173
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
192
174
|
const ttriad = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
193
175
|
const FromAta = (0, helpers_1.getATASync)(wallet, ttriad);
|
|
194
176
|
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
@@ -197,7 +179,7 @@ class Stake {
|
|
|
197
179
|
.stakeToken({
|
|
198
180
|
name,
|
|
199
181
|
amount: new anchor_1.BN(amount * Math.pow(10, 6)),
|
|
200
|
-
stakeVault
|
|
182
|
+
stakeVault: this.stakeVaultName
|
|
201
183
|
})
|
|
202
184
|
.accounts({
|
|
203
185
|
signer: wallet,
|
|
@@ -216,35 +198,6 @@ class Stake {
|
|
|
216
198
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
217
199
|
});
|
|
218
200
|
}
|
|
219
|
-
/**
|
|
220
|
-
* Initialize Stake Vault
|
|
221
|
-
* @param name - The ticker's name
|
|
222
|
-
* @param slots - Amount available to users joining the vault
|
|
223
|
-
* @param collection - The Collection name
|
|
224
|
-
*
|
|
225
|
-
*/
|
|
226
|
-
initializeStakeVault({ name, slots, collection, amount }, options) {
|
|
227
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
228
|
-
const method = this.program.methods
|
|
229
|
-
.initializeStakeVault({
|
|
230
|
-
name,
|
|
231
|
-
slots,
|
|
232
|
-
collection,
|
|
233
|
-
amount
|
|
234
|
-
})
|
|
235
|
-
.accounts({
|
|
236
|
-
signer: this.provider.wallet.publicKey
|
|
237
|
-
});
|
|
238
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
239
|
-
method.postInstructions([
|
|
240
|
-
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
241
|
-
microLamports: options.microLamports
|
|
242
|
-
})
|
|
243
|
-
]);
|
|
244
|
-
}
|
|
245
|
-
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
201
|
/**
|
|
249
202
|
* Deposit Stake Rewards
|
|
250
203
|
* @param wallet - User wallet
|
|
@@ -252,15 +205,15 @@ class Stake {
|
|
|
252
205
|
* @param amount - Reward amount
|
|
253
206
|
*
|
|
254
207
|
*/
|
|
255
|
-
depositStakeRewards({ wallet, mint, amount
|
|
208
|
+
depositStakeRewards({ wallet, mint, amount }, options) {
|
|
256
209
|
return __awaiter(this, void 0, void 0, function* () {
|
|
257
|
-
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
210
|
+
const StakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
258
211
|
const FromAta = (0, helpers_1.getATASync)(wallet, mint);
|
|
259
212
|
const ToAta = (0, helpers_1.getATASync)(StakeVaultPDA, mint);
|
|
260
213
|
const method = this.program.methods
|
|
261
214
|
.depositStakeRewards({
|
|
262
215
|
amount,
|
|
263
|
-
stakeVault
|
|
216
|
+
stakeVault: this.stakeVaultName
|
|
264
217
|
})
|
|
265
218
|
.accounts({
|
|
266
219
|
signer: wallet,
|
|
@@ -282,12 +235,11 @@ class Stake {
|
|
|
282
235
|
* Request Withdraw
|
|
283
236
|
* @param wallet - User wallet
|
|
284
237
|
* @param name - Stake name
|
|
285
|
-
* @param stakeVault - Name of the stake vault
|
|
286
238
|
*
|
|
287
239
|
*/
|
|
288
|
-
requestWithdraw({ wallet, name, mint
|
|
240
|
+
requestWithdraw({ wallet, name, mint }, options) {
|
|
289
241
|
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
242
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
291
243
|
const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
|
|
292
244
|
const userPAD = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
293
245
|
const method = this.program.methods.requestWithdrawStake().accounts({
|
|
@@ -312,12 +264,11 @@ class Stake {
|
|
|
312
264
|
* @param wallet - User wallet
|
|
313
265
|
* @param name - Stake name
|
|
314
266
|
* @param mint - NFT mint
|
|
315
|
-
* @param stakeVault - Name of the stake vault
|
|
316
267
|
*
|
|
317
268
|
*/
|
|
318
|
-
withdrawStake({ wallet, name, mint
|
|
269
|
+
withdrawStake({ wallet, name, mint }, options) {
|
|
319
270
|
return __awaiter(this, void 0, void 0, function* () {
|
|
320
|
-
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
271
|
+
const stakeVaultPDA = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
321
272
|
const userPDA = (0, helpers_1.getUserAddressSync)(this.program.programId, wallet);
|
|
322
273
|
const FromAta = (0, helpers_1.getATASync)(stakeVaultPDA, mint);
|
|
323
274
|
const stakePDA = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, name);
|
|
@@ -342,44 +293,16 @@ class Stake {
|
|
|
342
293
|
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
343
294
|
});
|
|
344
295
|
}
|
|
345
|
-
/**
|
|
346
|
-
* Update Stake Vault Status
|
|
347
|
-
* @param wallet - User wallet
|
|
348
|
-
* @param stakeVault - Name of the stake vault
|
|
349
|
-
* @param isLocked - Status of the stake vault
|
|
350
|
-
* @param week - Current week rewards (Starts from 0)
|
|
351
|
-
*
|
|
352
|
-
*/
|
|
353
|
-
updateStakeVaultStatus({ wallet, isLocked, stakeVault }, options) {
|
|
354
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
355
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, stakeVault);
|
|
356
|
-
const method = this.program.methods
|
|
357
|
-
.updateStakeVaultStatus(isLocked)
|
|
358
|
-
.accounts({
|
|
359
|
-
signer: wallet,
|
|
360
|
-
stakeVault: StakeVault
|
|
361
|
-
});
|
|
362
|
-
if (options === null || options === void 0 ? void 0 : options.microLamports) {
|
|
363
|
-
method.postInstructions([
|
|
364
|
-
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
365
|
-
microLamports: options.microLamports
|
|
366
|
-
})
|
|
367
|
-
]);
|
|
368
|
-
}
|
|
369
|
-
return method.rpc({ skipPreflight: options === null || options === void 0 ? void 0 : options.skipPreflight });
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
296
|
/**
|
|
373
297
|
* Claim Stake Rewards
|
|
374
298
|
* @param wallet - User wallet
|
|
375
299
|
* @param mint - NFT mint
|
|
376
|
-
* @param stakeVault - Name of the stake vault
|
|
377
300
|
* @param nftName - Name of the nft
|
|
378
301
|
*
|
|
379
302
|
*/
|
|
380
|
-
claimStakeRewards({ wallet,
|
|
303
|
+
claimStakeRewards({ wallet, nftName, collections, rank }, options) {
|
|
381
304
|
return __awaiter(this, void 0, void 0, function* () {
|
|
382
|
-
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId,
|
|
305
|
+
const StakeVault = (0, helpers_1.getStakeVaultAddressSync)(this.program.programId, this.stakeVaultName);
|
|
383
306
|
const mint = new web3_js_1.PublicKey(constants_1.TTRIAD_MINT);
|
|
384
307
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, wallet, nftName);
|
|
385
308
|
const FromAta = (0, helpers_1.getATASync)(StakeVault, mint);
|
|
@@ -412,16 +335,15 @@ class Stake {
|
|
|
412
335
|
* Update Stake Boost
|
|
413
336
|
* @param wallet - User wallet
|
|
414
337
|
* @param nftName - Name of the nft
|
|
415
|
-
* @param boost - Boost value
|
|
416
338
|
*
|
|
417
339
|
*/
|
|
418
|
-
updateBoost({ wallet, nfts
|
|
340
|
+
updateBoost({ wallet, nfts }, options) {
|
|
419
341
|
return __awaiter(this, void 0, void 0, function* () {
|
|
420
342
|
const ixs = [];
|
|
421
343
|
for (const nft of nfts) {
|
|
422
344
|
const Stake = (0, helpers_1.getStakeAddressSync)(this.program.programId, new web3_js_1.PublicKey(nft.wallet), nft.name);
|
|
423
345
|
ixs.push(yield this.program.methods
|
|
424
|
-
.updateStakeBoost(
|
|
346
|
+
.updateStakeBoost()
|
|
425
347
|
.accounts({
|
|
426
348
|
signer: wallet,
|
|
427
349
|
stake: Stake
|
package/dist/test.js
CHANGED
|
@@ -17,87 +17,37 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
17
17
|
const index_1 = __importDefault(require("./index"));
|
|
18
18
|
const anchor_1 = require("@coral-xyz/anchor");
|
|
19
19
|
const constants_1 = require("./utils/constants");
|
|
20
|
-
const rarity_json_1 = __importDefault(require("./utils/stake-season-1/rarity.json"));
|
|
21
|
-
const getRarity_1 = require("./utils/getRarity");
|
|
22
20
|
const axios_1 = __importDefault(require("axios"));
|
|
23
|
-
const file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/
|
|
21
|
+
const file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/triad-builder.json');
|
|
24
22
|
const rpc_file = fs_1.default.readFileSync('/Users/dannpl/.config/solana/rpc.txt');
|
|
25
23
|
const keypair = web3_js_1.Keypair.fromSecretKey(new Uint8Array(JSON.parse(file.toString())));
|
|
26
24
|
const connection = new web3_js_1.Connection(rpc_file.toString(), 'confirmed');
|
|
27
25
|
const wallet = new anchor_1.Wallet(keypair);
|
|
28
26
|
const triadProtocol = new index_1.default(connection, wallet);
|
|
29
|
-
const
|
|
30
|
-
const response = yield triadProtocol.stake.getStakes(constants_1.STAKE_SEASON);
|
|
31
|
-
let available = 0;
|
|
32
|
-
let items = 0;
|
|
33
|
-
for (const stake of response) {
|
|
34
|
-
const getRank = (0, getRarity_1.getRarityRank)(rarity_json_1.default, stake.mint, stake.name);
|
|
35
|
-
try {
|
|
36
|
-
available += yield triadProtocol.stake.getStakeRewards({
|
|
37
|
-
wallet: new web3_js_1.PublicKey(stake.authority),
|
|
38
|
-
nftName: stake.name,
|
|
39
|
-
stakeVault: constants_1.STAKE_SEASON,
|
|
40
|
-
rank: getRank,
|
|
41
|
-
collections: 1
|
|
42
|
-
});
|
|
43
|
-
items += 1;
|
|
44
|
-
console.log(items);
|
|
45
|
-
console.log(available);
|
|
46
|
-
}
|
|
47
|
-
catch (e) { }
|
|
48
|
-
}
|
|
49
|
-
console.log(available);
|
|
50
|
-
console.log(items);
|
|
51
|
-
console.log(response.length);
|
|
52
|
-
});
|
|
53
|
-
const deposit = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const depositStakeRewards = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
28
|
const response = yield triadProtocol.stake.depositStakeRewards({
|
|
55
29
|
wallet: wallet.publicKey,
|
|
56
|
-
stakeVault: constants_1.STAKE_SEASON,
|
|
57
30
|
mint: new web3_js_1.PublicKey(constants_1.TTRIAD_MINT),
|
|
58
31
|
amount: new anchor_1.BN(192388 * Math.pow(10, 6))
|
|
59
32
|
});
|
|
60
33
|
console.log(response);
|
|
61
34
|
});
|
|
62
|
-
const getStakeVault = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
const response = yield triadProtocol.stake.getStakeVaultByName(constants_1.STAKE_SEASON);
|
|
64
|
-
console.log(response);
|
|
65
|
-
});
|
|
66
|
-
const getStakeByWallet = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
67
|
-
const response = yield triadProtocol.stake.getStakeByWallet(new web3_js_1.PublicKey('HjJQdfTHgC3EBX3471w4st8BXbBmtbaMyCAXNgcUb7dq'), constants_1.STAKE_SEASON, 1, rarity_json_1.default);
|
|
68
|
-
console.log(response);
|
|
69
|
-
});
|
|
70
35
|
const updateBoost = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
36
|
const response = (yield axios_1.default.get('https://api.triadfi.co/boost'))
|
|
72
37
|
.data;
|
|
73
|
-
const stakes = yield triadProtocol.stake.getStakes(
|
|
38
|
+
const stakes = yield triadProtocol.stake.getStakes();
|
|
74
39
|
const update = [];
|
|
75
40
|
for (const stake of stakes) {
|
|
41
|
+
if (update.length >= 10) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
76
44
|
if (response.includes(stake.mint) && !stake.boost) {
|
|
77
45
|
update.push({ name: stake.name, wallet: stake.authority });
|
|
78
46
|
}
|
|
79
47
|
}
|
|
80
|
-
console.log(update);
|
|
81
48
|
const updateBoostResponse = yield triadProtocol.stake.updateBoost({
|
|
82
49
|
wallet: wallet.publicKey,
|
|
83
|
-
|
|
84
|
-
nfts: update,
|
|
85
|
-
boost: true
|
|
50
|
+
nfts: update
|
|
86
51
|
});
|
|
87
52
|
console.log(updateBoostResponse);
|
|
88
53
|
});
|
|
89
|
-
const mineOre = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
-
const response = yield triadProtocol.mineOre({
|
|
91
|
-
user: wallet.publicKey,
|
|
92
|
-
payer: wallet.publicKey,
|
|
93
|
-
bus: new web3_js_1.PublicKey('BZJ2xppmny6ME3NkAgu2SMZB2mwS5xboX9n6VsSyGYFJ'),
|
|
94
|
-
digest: [
|
|
95
|
-
149, 32, 37, 176, 97, 139, 13, 182, 108, 28, 66, 160, 137, 156, 204, 249
|
|
96
|
-
],
|
|
97
|
-
nonce: [217, 46, 186, 232, 162, 139, 46, 186]
|
|
98
|
-
}, {
|
|
99
|
-
skipPreflight: true,
|
|
100
|
-
microLamports: 10000
|
|
101
|
-
});
|
|
102
|
-
console.log(response);
|
|
103
|
-
});
|